1. 如何用matlab做傅里葉反變換啊
直接用ifft();例如信號x
y=fft(x);%對信號傅里葉變換到頻域
z=ifft(y);%對信號y傅里葉反變換到時域,
2. 用matlab 做時間序列分析應該用什麼工具箱
用matlab 做時間序列分析應該用什麼工具箱
短時傅里葉變換在Signal Processing Toolbox里,你一定是沒裝這個工具箱,再裝一次MATLBA
3. matlab擬合工具箱用傅里葉逼近對某條曲線擬合
第二個圖里定義域是[0,100],第一個圖定義域是[0,5000]畫出來當然不一樣。。
4. 怎樣調用matlab中cftool工具箱傅里葉擬合的結果,也就是系數a0--b7
菜單File--》Generate M-file,運行導出的m文件,就可以在工作空間里調用系數a0--b7。
5. 如何用matlab進行快速傅里葉變換(請教)
Y=fft(exp(-x^2));請樓主注意,快速傅里葉變化後,值和頻率不是對應的。需要加一步Y=fftshift(Y);祝你好運
6. MATLAB simulink中,傅里葉分析模塊是幹嘛的啊
做傅里葉變換用的,把時域信號轉化到頻域。
7. 求助,用MATLAB實現傅里葉分析和小波變換
N=500;fs=1000; %設置采樣點及采樣頻率
n=0:N-1;
t=n/fs;
s=sin(50*2*pi*n/fs)+sin(300*2*pi*n/fs); %信號生成
s1=awgn(s,2); %信噪比2dB
s_ft1=fftshift(abs(fft(s1,N)))/fs;
s2=awgn(s,0); %信噪比0dB
s_ft2=fftshift(abs(fft(s2,N)))/fs;
s3=awgn(s,-2); %信噪比-2dB
s_ft3=fftshift(abs(fft(s3,N)))/fs;
w=fs*(n-N/2)/N; %頻域坐標轉換
subplot(311);plot(w,s_ft1);title('信噪比為2dB頻譜圖');
subplot(312);plot(w,s_ft1);title('信噪比為0dB頻譜圖');
subplot(313);plot(w,s_ft1);title('信噪比為-2dB頻譜圖'); 第二個N=500;fs=1000; %設置采樣點及采樣頻率
n=0:N-1;
t=n/fs;
s_i=3*sin(100*pi*t)+2*sin(68*pi*t)+5*cos(72*pi*t); %原始信號
s_n=wgn(1,N,3); %雜訊
s=s_i+s_n; %信號聲稱
scale=[1 1.2 1.4 3]; %設置尺度%% 四種小波變換
subplot(221);s_c_h1=cwt(s,scale,'haar','plot');title('Haar wavelet');
subplot(222);s_c_h2=cwt(s,scale,'mexh','plot');title('Mexican hat wavelet');
subplot(223);s_c_h3=cwt(s,scale,'morl','plot');title('Morlet wavelet');
subplot(224);s_c_h4=cwt(s,scale,'meyr','plot');title('Meyer wavelet');figure; %以Mexican hat小波為例
subplot(221);plot(s_c_h2(1,:));title('尺度為1');
subplot(222);plot(s_c_h2(2,:));title('尺度為1.2');
subplot(223);plot(s_c_h2(3,:));title('尺度為1.4');
subplot(224);plot(s_c_h2(4,:));title('尺度為3');
8. 用matlab實現傅里葉正逆變換源程序
matlab是矩陣工具箱,更多地是用來處理數字的東西,要是實現離散的傅里葉變換程序我倒知道。
9. matlab里有什麼工具箱,可以用FFT(快速傅立葉變換)做頻譜分析
1、采樣數據導入Matlab 。
采樣數據的導入至少有三種方法。
第一就是手動將數據整理成Matlab支持的格式,這種方法僅適用於數據量比較小的采樣。
第二種方法是使用Matlab的可視化交互操作,具體操作步驟為:File --> Import Data,然後在彈出的對話框中找到保存采樣數據的文件,根據提示一步一步即可將數據導入。這種方法適合於數據量較大,但又不是太大的數據。
第三種方法,使用文件讀入命令。數據文件讀入命令有textread、fscanf、load等,如采樣數據保存在txt文件中,則推薦使用 textread命令。如[a,b]=textread('data.txt','%f%*f%f'); 這條命令將data.txt中保存的數據三個三個分組,將每組的第一個數據送給列向量a,第三個數送給列向量b,第二個數據丟棄。命令類似於C語言,詳細可查看其幫助文件。文件讀入命令錄入采樣數據可以處理任意大小的數據量,且錄入速度相當快,一百多萬的數據不到20秒即可錄入。
2、對采樣數據進行頻譜分析 。
頻譜分析自然要使用快速傅里葉變換FFT了,對應的命令即 fft ,簡單使用方法為:Y=fft(b,N),其中b即是采樣數據,N為fft數據采樣個數。一般不指定N,即簡化為Y=fft(b)。Y即為FFT變換後得到的結果,與b的元素數相等,為復數。以頻率為橫坐標,Y數組每個元素的幅值為縱坐標,畫圖即得數據b的幅頻特性;以頻率為橫坐標,Y數組每個元素的角度為縱坐標,畫圖即得數據b的相頻特性。典型頻譜分析M程序舉例如下: clc fs=100;
t=[0:1/fs:100];
N=length(t)-1;%減1使N為偶數 %頻率解析度F=1/t=fs/N
p=1.3*sin(0.48*2*pi*t)+2.1*sin(0.52*2*pi*t)+1.1*sin(0.53*2*pi*t)... +0.5*sin(1.8*2*pi*t)+0.9*sin(2.2*2*pi*t);
%上面模擬對信號進行采樣,得到采樣數據p,下面對p進行頻譜分析
figure(1) plot(t,p); grid on
title('信號 p(t)'); xlabel('t') ylabel('p') Y=fft(p);
magY=abs(Y(1:1:N/2))*2/N; f=(0:N/2-1)'*fs/N; figure(2)
%plot(f,magY);
h=stem(f,magY,'fill','--');
set(h,'MarkerEdgeColor','red','Marker','*') grid on
title('頻譜圖 (理想值:[0.48Hz,1.3]、[0.52Hz,2.1]、[0.53Hz,1.1]、[1.8Hz,0.5]、[2.2Hz,0.9]) '); xlabel('f (Hz)') ylabel('幅值')
對於現實中的情況,采樣頻率fs一般都是由采樣儀器決定的,即fs為一個給定的常數;另一方面,為了獲得一定精度的頻譜,對頻率解析度F有一個人為的規定,一般要求F<0.01,即采樣時間ts>100秒;由采樣時間ts和采樣頻率fs即可決定采樣數據量,即采樣總點數N=fs*ts。這就從理論上對采樣時間ts和采樣總點數N提出了要求,以保證頻譜分析的精準度。