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

📄 fir(可用).txt

📁 压缩包中共有7个文件
💻 TXT
字号:
clear;clc;

%% 由于每次的噪声不同,所以效果还是有些差异的。
%% 无限长
%% 优点:低阶可获得高选择性,设计简单,有表可查
%% 缺点:必须采用递归结构,调整复杂,速度慢,线性相位较差,波形前断失真,滤波效果不好。
%% 适应范围:语言通讯

%% 有限长
%% 优点:线性相位好,滤波速度快(fft),非递归结构,误差低。
%% 缺点:高阶才能获得高选择性,信号延时大,设计必须要程序实现,无表可查。
%% 适用范围:图像信号处理,数据传输

%  1.信号噪声产生
N=256;     %  长度
f=50;      %  信号频率
Ts=1/800;  %  采样周期

%  信号
p=1:N;
y=sin(2*pi*f*p*Ts);

% 噪声
y_noise=y+0.8*randn(1,N);

figure(1);

subplot(2,1,1);
plot(y);
title('信号');

subplot(2,1,2);
stem(abs(fft(y)));
title('信号谱');

figure(2);
subplot(2,1,1);
plot(y_noise);
title('信号噪声');

subplot(2,1,2);
stem(abs(fft(y_noise)));
title('信号噪声谱');

%  2.IIR滤波器设计

%%  无限长(Elliptic)
%%  带通滤波器,通带f-f1hz~f+f1hz,阻带f+f2hz~f-f2hz
%%  以半抽样频率归一化
%%  f1,f2,alphap,alphas必须调整

f1=10;        %  通带间隔
f2=15;        %  阻带间隔
alphap=1;     %  通带纹波
alphas=60;    %  阻带衰减

[n_iir,Wn_iir]=ellipord([f-f1 f+f1]*2*Ts,[f-f2 f+f2]*2*Ts,alphap,alphas);  % 获得阶数
[biir,aiir]=ellip(n_iir,alphap,alphas,Wn_iir); %  获得滤波器系数

%  3.滤波开始
y_iir=filter(biir,aiir,y_noise);

figure(3);
subplot(2,1,1);
plot(y_iir);
title('无限长滤波后信号');

subplot(2,1,2);
stem(abs(fft(y_iir)));
title('无限长滤波后信号的谱');


%   4.FIR滤波器设计

%%  有限长(窗函数线性相位)
%%  带通滤波器,通带f-f3hz~f+f3hz
%%  以半抽样频率归一化
%%  f3,N_fir必须调整

f3=3;                     %  通带间隔
Wn_fir=[f-f3,f+f3]*2*Ts;  %  归一化通带
N_fir=80;                 %  滤波器长度(一般较高)

bfir=fir1(N_fir,Wn_fir,'bandpass');  %  获得滤波器系数

%  5.滤波开始
%%  用圆周卷效果更好

y_fir=conv(bfir,y_noise);      %%卷积
y_fir=wkeep(y_fir,length(y));  %%保持(保持与源信号长度一样)

figure(4);
subplot(2,1,1);
plot(y_fir);
title('有限长滤波后信号');

subplot(2,1,2);
stem(abs(fft(y_fir)));
title('有限长滤波后信号的谱');



⌨️ 快捷键说明

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