⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fft_freqanalyse.m

📁 this base on DSP a iir design
💻 M
字号:
%writen by Ziwei Chen 
clc;close all;clear all;
%产生模拟信号z(t)
t=[0:0.00001:1];
f1=300;f2=600;
zt=5*sin(2*pi*f1*t)+2.5*cos(2*pi*f2*t);
h1=figure;
set(h1,'name','进行频谱分析的信号(时间连续信号)');
plot(t,zt);
xlabel('时间t (单位:s)');ylabel('幅度z(t)');
title('模拟时间信号z(t)');

%计算采样周期Ts及采样点数N,对原时间信号进行截断,选取Tp时间进行观察
fs=1200;Ts=1/fs;
%F=2;
N=512;                                 %N=fs/F
Tp=N*Ts                               %最小记录时间(对信号的观察时间)

%对模拟信号进行采样,得到序列信号z(n)
n=[0:N-1];
zn=5*sin(2*pi*f1*n*Ts)+2.5*cos(2*pi*f2*n*Ts);
h2=figure;
set(h2,'name','进行频谱分析的信号(时间离散信号)');
stem(n,zn);
xlabel('时间n');ylabel('幅度z(n)');
title('离散时间信号z(n)')

name=fopen('analysesignal.dat','w');
count=fprintf(name,'short',fix(zn))%count=fwrite(name,zn,'short')
fid=fclose(name)

%对序列信号z(n)进行谱分析,得到信号的频谱
k=[0:N-1];
ZK=fft(zn,N);
h3=figure;
set(h3,'name','频谱分析的结果(频谱信号)');
plot(fs*k/N,abs(ZK));grid on;
set(gca,'XTickMode','manual','XTick',[0,300,600,900,1200]);
xlabel('频率f  (单位:Hz)');ylabel('幅度|Z(j2\pif)|');
title('信号的幅度谱(离散频谱)');

%对序列信号z(n)的频谱Z(k)进行IFFT,恢复原序列信号
zn2=(1/N)*conj(fft(conj(ZK),N));
h4=figure;
set(h4,'name','恢复之后的时间离散信号');
stem(n,abs(zn2));
xlabel('时间n');ylabel('幅度z(n)');
title('恢复之后的离散时间信号z(n)')

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -