[音声処理] matlabGUI音声時間領域周波数領域スペクトログラム分析に基づく[Matlabソースコード527を含む]

1.はじめに

時間領域と周波数領域は信号の基本的な特性であるため、信号はさまざまな方法で分析でき、それぞれが異なる角度を提供します。問題を解決するための最速の方法は、必ずしも最も明白な方法ではありません。信号の分析に使用されるさまざまな角度は、ドメインと呼ばれます。時間領域と周波数領域は、信号と相互接続ライン間の相互影響を明確に反映できます。
1時間領域
時間領域は現実の世界であり、実際に存在する唯一の領域です。私たちの経験は時間領域で開発および検証されているため、時系列で発生するイベントに慣れてきました。デジタル製品のパフォーマンスを評価する場合、製品のパフォーマンスは最終的に時間領域で測定されるため、分析は通常、時間領域で実行されます。

クロック波形の2つの重要なパラメータは、クロック周期と立ち上がり時間です。
ここに画像の説明を挿入します
図には、1GHzクロック信号のクロックサイクルと10〜90の立ち上がり時間が示されています。一般に、立ち下がり時間は立ち上がり時間よりも短く、ノイズが多く発生する場合があります。

クロック周期は、クロックサイクルが1回繰り返される時間間隔であり、通常はnsで測定されます。クロック周波数Fclock、つまり1秒間のクロックサイクル数は、クロック周期Tclockの逆数です。

Fclock = 1 / Tclock

立ち上がり時間は、信号が低レベルから高レベルに遷移するのにかかる時間に関連しており、通常は2つの定義があります。1つは10-90の立ち上がり時間で、これは信号が最終値の10%から90%にジャンプするのにかかる時間を指します。これは通常、デフォルトの式であり、波形の時間領域図から直接読み取ることができます。2番目の定義方法は20-80の立ち上がり時間です。これは、最終値の20%から80%にジャンプするのにかかる時間を指します。

時間領域波形の立ち下がり時間にも対応する値があります。ロジックシリーズによると、立ち下がり時間は通常、立ち上がり時間よりも短くなります。これは、一般的なCMOS出力ドライバの設計によって引き起こされます。一般的な出力ドライバでは、pチューブとnチューブが電源レールVccとVssの間に直列に接続され、出力は2つのチューブの中央に接続されます。常に1つのトランジスタのみがオンになるため、どのチューブがオンになるかは、出力のハイ状態またはロー状態によって異なります。

2周波数領域
特に無線周波数および通信システムでは周波数領域がよく使用され、高速デジタルアプリケーションでも周波数領域に遭遇します。周波数領域の最も重要な特性は次のとおりです。それは実数ではなく、数学的構造です。時間領域は客観的に存在する唯一の領域であり、周波数領域は特定の規則に従う数学的カテゴリーであり、周波数領域は一部の学者によって神の視点とも呼ばれています。

正弦波は周波数領域に存在する唯一の波形です。これは周波数領域で最も重要なルールです。つまり、正弦波は周波数領域の記述です。これは、周波数領域の任意の波形を次のように合成できるためです。正弦波。これは正弦波の非常に重要な特性です。ただし、正弦波特有の特性ではなく、この特性を持つ波形は他にもたくさんあります。正弦波には、他の波形を効果的に記述するための4つの特性があります。

(1)周波数領域の波形は、正弦波の組み合わせによって完全かつ一意に記述できます。

(2)周波数の異なる2つの正弦波は直交しています。2つの正弦波が乗算され、時間軸全体で積分される場合、積分値はゼロです。これは、異なる周波数成分を互いに分離できることを示しています。

(3)正弦波には正確な数学的定義があります。

(4)正弦波とその微分値は、上限と下限なしでどこにでも存在します。

周波数領域での関数としての正弦波の使用には、特別な場所があります。正弦波を使用すると、相互接続ラインの電気的影響に関連するいくつかの問題が理解しやすくなり、解決しやすくなります。周波数領域に変換して正弦波で記述すると、時間領域だけでなく、より速く答えが得られる場合があります。

実際には、最初に抵抗、インダクタンス、静電容量を含む回路を構築し、任意波形を入力します。通常の状況では、正弦波に似た波形が得られます。さらに、以下の図2.2に示すように、いくつかの正弦波の組み合わせにより、これらの波形を簡単に説明できます。
ここに画像の説明を挿入します
図2.2理想的なRLC回路の相互作用の時間領域の動作

3
時間領域と周波数領域の関係時間領域分析と周波数領域分析は、アナログ信号の2つの観測面です。時間領域分析では、動的信号の関係を表す座標として時間軸を使用します。周波数領域分析では、表現する座標として信号を周波数軸に変更します。一般的に言えば、時間領域の表現はより鮮明で直感的であり、周波数領域の分析はより簡潔であり、問​​題の分析はより深く便利です。信号分析の傾向は、時間領域から周波数領域へと発展することです。しかし、それらは相互に関連しており、1つは不可欠であり、互いに補完し合っています。
4時間領域と周波数領域の
変換動的信号は、主にフーリエ級数とフーリエ変換によって時間領域から周波数領域に変換されます。周期信号はフーリエ級数に依存し、非周期信号はフーリエ変換に依存します。時間領域が広いほど、周波数領域は短くなります。

s(f)=∫-∞+∞(s(t)・e)dt

sD(t)= dS(t)/ dt

sD(f)=∫-∞(sD(t)・e-j2∏ft)dt = j・2∏f・s(f)

第二に、ソースコード

function varargout = gui(varargin)
% GUI MATLAB code for gui.fig
%      GUI, by itself, creates a new GUI or raises the existing
%      singleton*.
%
%      H = GUI returns the handle to a new GUI or the handle to
%      the existing singleton*.
%
%      GUI('CALLBACK',hObject,eventData,handles,...) calls the local
%      function named CALLBACK in GUI.M with the given input arguments.
%
%      GUI('Property','Value',...) creates a new GUI or raises the
%      existing singleton*.  Starting from the left, property value pairs are
%      applied to the GUI before gui_OpeningFcn gets called.  An
%      unrecognized property name or invalid value makes property application
%      stop.  All inputs are passed to gui_OpeningFcn via varargin.
%
%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
%      instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help gui

% Last Modified by GUIDE v2.5 23-Apr-2019 15:32:28

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @gui_OpeningFcn, ...
                   'gui_OutputFcn',  @gui_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{
    
    1})
    gui_State.gui_Callback = str2func(varargin{
    
    1});
end

if nargout
    [varargout{
    
    1:nargout}] = gui_mainfcn(gui_State, varargin{
    
    :});
else
    gui_mainfcn(gui_State, varargin{
    
    :});
end
% End initialization code - DO NOT EDIT


% --- Executes just before gui is made visible.
function gui_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
% varargin   command line arguments to gui (see VARARGIN)

% Choose default command line output for gui
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes gui wait for user response (see UIRESUME)
% uiwait(handles.figure1);


% --- Outputs from this function are returned to the command line.
function varargout = gui_OutputFcn(hObject, eventdata, handles) 
% varargout  cell array for returning output args (see VARARGOUT);
% hObject    handle to figure
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{
    
    1} = handles.output;


% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global aud RecordLength ShowLength FrequencyWindow1 FrequencyWindow2 fs nBits
global mag idx_last recObj myRecording bit




record(recObj,RecordLength);
tic
while toc<.1
end
bit = 2;
while toc<RecordLength
    myRecording = getaudiodata(recObj);
    idx = round(toc*fs);
    while idx-idx_last<.1*fs
       idx=round(toc*fs);
    end
   axes(handles.axes1)
   plot((max(1,size(myRecording,1)-fs*ShowLength):(2^bit):size(myRecording,1))./fs,myRecording(max(1,size(myRecording,1)-fs*ShowLength):(2^bit):end))
   mag = max(abs(myRecording));
   ylim([-1.2 1.2]*mag)
   xlim([max(0,size(myRecording,1)/fs-ShowLength)
   max(size(myRecording,1)/fs,ShowLength)])
   title('声音信号的波形显示');
   ylabel('Signal level(volts)');
   xlabel('Samples');
   drawnow
   idx_last = idx;
end
% --- Executes on button press in pushbutton2.
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global aud RecordLength ShowLength FrequencyWindow1 FrequencyWindow2 fs nBits
global mag idx_last recObj myRecording
save data.mat aud RecordLength ShowLength FrequencyWindow1 FrequencyWindow2 fs nBits mag idx_last recObj myRecording 

% --- Executes on button press in pushbutton3.
function pushbutton3_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton3 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in pushbutton4.
function pushbutton4_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton4 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
clc,clear,
close all force;

% --- Executes on button press in pushbutton5.
function pushbutton5_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton5 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global aud RecordLength ShowLength FrequencyWindow1 FrequencyWindow2 fs nBits
global mag idx_last recObj
aud = audiodevinfo;
RecordLength = 15;
ShowLength = 15;
FrequencyWindow1 = 0;
FrequencyWindow2 = 3000;
fs = 44100;
nBits = 16;
mag = 1.05;
idx_last = 1;
 recObj = audiorecorder(fs,nBits,1);
 if isempty(recObj);
     
 else
     msgbox('语音设备已检测到!!!');
 end

% --- Executes on button press in pushbutton6.
function pushbutton6_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton6 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)


% --- Executes on button press in pushbutton7.
function pushbutton7_Callback(hObject, eventdata, handles)
% hObject    handle to pushbutton7 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global fs
load('data.mat')
sound(myRecording,fs);


% --------------------------------------------------------------------
function Untitled_1_Callback(hObject, eventdata, handles)
% hObject    handle to Untitled_1 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
global aud RecordLength ShowLength FrequencyWindow1 FrequencyWindow2 fs nBits
global mag idx_last recObj myRecording bit x3
x1 = myRecording(max(1,size(myRecording,1)-fs*ShowLength):(2^bit):end);
N=length(x1);
x2 = x1-mean(x1);
x3 = smooth(x2);
axes(handles.axes1)
plot(x3,'b-','linewidth',2)
axis tight
title('零均值化——平滑滤波')

% --------------------------------------------------------------------
function Untitled_2_Callback(hObject, eventdata, handles)
% hObject    handle to Untitled_2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)

3、実行中の結果

ここに画像の説明を挿入します
ここに画像の説明を挿入します

四、備考

完全なコードまたは書き込み追加QQ1564658423過去のレビュー
>>>>>>
[機能の抽出] matlabウェーブレット変換に基づくオーディオ透かしの埋め込みと抽出[Matlabソースコード053を含む]
[音声処理] matlabGUIに基づく音声信号処理[Matlabを含むソースコードの問題290]
[音声取得] matlabGUI音声信号収集に基づく[Matlabソースコード291を含む]
[音声変調] matlabGUI音声振幅変調に基づく[Matlabソースコード292を含む]
[音声合成] matlabGUI音声に基づく合成[Matlabソースコードの問題293を含む]
[音声暗号化] matlabGUI音声信号の暗号化と復号化に基づく[Matlabソースコード295を含む]
[音声拡張] Matlabウェーブレット変換ベースの音声拡張[Matlabソースコード296]
[音声認識] matlabGUI音声ベース周波数認識に基づく[Matlabソースコード294を含む]
[音声拡張] Matlab GUIWienerフィルタリングベースの音声拡張[Matlabソースコード298を含む]
[音声処理] matlabGUI音声信号処理に基づく[Matlabソースコード299を含む]
[信号処理] Matlab音声信号スペクトルアナライザーに基づく[Matlabソースコード325を含む]
[変調信号] matlabGUIに基づくデジタル変調信号シミュレーション[Matlabソースコード336を含む]
[感情認識] matlabBPニューラルに基づく音声感情認識ネットワーク[Matlabソースコード349の​​問題を含む]
[音声ステガノグラフィー] Matlabウェーブレット変換に基づく定量化されたオーディオデジタルウォーターマーキング[Matlabソースコードの問題351を含む]
[特徴抽出] matlabオーディオ透かしの埋め込みと抽出に基づく[Matlabソースコード350期間を含む]
[音声ノイズ除去] matlabローパスと適応フィルターノイズ除去に基づく[Matlabソースコード352期間を含む]
[感情認識] matlabGUI音声に基づく感情分類認識[Matlabソースコード354期間を含む]
[基本処理] Matlabベースの音声信号前処理[Matlabソースコード364期間を含む]
[音声認識] Matlabフーリエ変換0-9デジタル音声認識[Matlabソースコード384期間を含む]
[音声認識] 0-9 matlab GUIDTWに基づくデジタル音声認識[Matlabソースコード385を含む]
[音声再生] Matlab GUIMP3設計[Matlabソースコード425を含む]
[音声処理]人間の耳のマスキング効果に基づく音声強調アルゴリズムノイズ比の計算[Matlabソースコード428を含む]
[音声ノイズ除去] matlabスペクトル減算ノイズ除去に基づく[Matlabソースコード429を含む]
[音声認識] matlabの運動量項目に基づくBPニューラルネットワーク音声認識[Matlabソースコード430を含む]
[音声ステガノグラフィ] matlabLSB音声隠蔽に基づく[Matlabソースコード431を含む]
[音声認識] matlabの男性と女性の音声認識に基づく[Matlabソースコード452を含む]
[音声処理] matlab音声ノイズの追加とノイズリダクション処理に基づく[MatlabソースコードIssue473を含む]
[音声ノイズ除去] matlab最小二乗(LMS)適応フィルターに基づく[ Matlabソースコード481を含む]
[音声強調] matlabスペクトル減算、最小平均二乗、およびWienerフィルター音声強調に基づく[Matlabを含むソースコード482期間】
[通信] matlab GUIデジタル周波数帯域(ASK、PSK、QAM)変調シミュレーションに
基づく[ Matlabソースコード483を含む] [信号処理] matlabECG信号処理に基づく[Matlabソースコード484を含む]
[音声ブロードキャスト] matlabに基づく音声ブロードキャスト[Matlabソースコード507を含む]
[信号処理] matlabウェーブレット変換EEG信号特徴抽出に
基づく[ Matlabソースコード511を含む] [音声処理] matlab GUIデュアルトーンマルチ周波数(DTMF)信号検出に基づく[含むMatlabソースコード512]
[]音声matlabMatlabソースコードに基づく音声信号[513]を含むLSBステガノグラフィックデジタル透かし
[] Matlabソースを含む音声認識matlab一致フィルターに基づく音声拡張[514]

おすすめ

転載: blog.csdn.net/TIQCmatlab/article/details/114870522