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

📄 fft_example.m

📁 同名书配套光盘及例程高质量MATLAB教学书籍
💻 M
字号:
%fliter_example.m
%单位冲击信号通过带阻滤波器
t = 1:40;                                  %信号的时间
x =zeros(size(t));                         
x(1) = 1;                                  %产生单位冲击信号
[b,a] = butter(10,[0.3 0.7],'stop');       %设计带阻滤波器
y = filter(b,a,x);                         %滤波                          
hold on;                                   %画图滤波前后的时域数据
stem(t,x,'marker','o');
stem(t,y,'marker','.');
xlabel('时间/ts(s)');
legend('原始数据','滤波后数据'); 
fx=fft(x);                                 %对单位冲击信号进行傅立叶变换  
fx=fftshift(fx);
fy=fft(y);                                 %滤波后的信号进行傅立叶变换
fy=fftshift(fy);
figure;
subplot(2,1,1);                            %画图显示滤波前后的数据频谱
f=(t-20)/20;
plot(f,abs(fx),'b-',f,abs(fy),'b-.');      %画信号的幅频曲线
xlabel('数字频率/\pi(rad)');
title('幅频曲线');
legend('原始数据的幅频曲线谱','滤波后数据的幅频曲线');
subplot(2,1,2);  
plot(f,angle(fx),'b-',f,angle(fy),'b-.');      %画信号的相频曲线
xlabel('数字频率/\pi(rad)');
title('相频曲线');
legend('原始数据的相频曲线','滤波后数据的相频曲线');

⌨️ 快捷键说明

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