资源简介
综合运用数字信号处理的理论知识进行频谱分析和滤波器设计,通过理论推导得出相应结论,再利用MATLAB作为编程工具进行计算机实现。
代码片段和文件信息
clear;
clc;
%
f_pn=170; %正弦波信号频率
f_sn=630; %三角波信号频率
l=32768; %信号的长度
fs=22050; %采样频率
%生成信号
figure(1);
t=(0:l-1)/fs;
pn=sin(2*pi*f_pn*t); %正弦波信号
subplot(311);
plot(1000*t(1:l/4)pn(1:l/4));
title(‘正弦波信号时域波形‘);
xlabel(‘时间(ms)‘);
ylabel(‘幅度‘);
sn=sawtooth(2*pi*f_sn*t0.5); %三角波信号
subplot(312);
plot(1000*t(1:l/4)sn(1:l/4));
title(‘三角波信号时域波形‘);
xlabel(‘时间(ms)‘);
ylabel(‘幅度‘);
dn=randn(size(t)); %随机噪声信号
subplot(313);
plot(1000*t(1:l/4)dn(1:l/4));
title(‘随机噪声信号时域波形‘);
xlabel(‘时间(ms)‘);
ylabel(‘幅度‘);
%信号合成分析
figure(2);
xn=pn+sn+dn;%信号合成
subplot(211);
plot(1000*t(1:l/4)xn(1:l/4));
title(‘合成信号时域波形‘);
xlabel(‘时间(ms)‘);
ylabel(‘幅度‘);
grid on;
subplot(212);
% 信号的频谱图
NFFT = 2^nextpow2(l);
Y = fft(xnNFFT)/l;
f = fs/2*linspace(01NFFT/2);
YM=2*abs(Y(1:NFFT/2));
plot(f(1:NFFT/16)YM(1:NFFT/16));
title(‘信号频谱‘);
xlabel(‘频率Hz)‘);
ylabel(‘幅度|Y(f)|‘);
grid on;
% 滤出正弦波信号
figure(3);
%fir带通滤波器:
Wp1=2*(f_pn-50)/fs;
Wp2=2*(f_pn+50)/fs;
Ws1=2*(f_pn-100)/fs;
Ws2=2*(f_pn+100)/fs;
Ap=1;
As=100;
W1=(Wp1+Ws1)/2;
W2=(Wp2+Ws2)/2;
wdth=min((Wp1-Ws1)(Ws2-Wp2));
N=ceil(11*pi/wdth)+1;
[ba]= fir1(N[W1 W2]);
[Hw]=freqz(bafs);
subplot(311);
plot(w*fs/(2*pi)abs(H));
axis([0 1400 -0.05 1.05]);
title(‘fir带通滤波器幅频响应‘);
xlabel(‘频率 (Hz)‘‘FontSize‘ 8.0)
ylabel(‘|H(f)|‘)
grid on;
s=xn;
%对信号进行滤波
sf0=filter(bas);
subplot(312);
plot(1000*t(1:l/4)sf0(1:l/4));
title(‘滤波后的时域波形‘);
xlabel(‘时间(ms)‘);
ylabel(‘幅度‘);
grid on;
subplot(313);
% 信号的频谱图
NFFT = 2^nextpow2(l);
Y = fft(sf0NFFT)/l;
f = fs/2*linspace(01NFFT/2);
YM=2*abs(Y(1:NFFT/2));
plot(f(1:NFFT/16)YM(1:NFFT/16));
title(‘滤波后的频谱图‘);
grid on;
% 滤出三角波信号
figure(4);
%fir带通滤波器:
Wp1=2*(f_sn-50)/fs;
Wp2=2*(f_sn+50)/fs;
Ws1=2*(f_sn-100)/fs;
Ws2=2*(f_sn+100)/fs;
Ap=1;
As=100;
W1=(Wp1+Ws1)/2;
W2=(Wp2+Ws2)/2;
wdth=min((Wp1-Ws1)(Ws2-Wp2));
N=ceil(11*pi/wdth)+1;
[ba]= fir1(N[W1 W2]);
[Hw]=freqz(bafs);
subplot(311);
plot(w*fs/(2*pi)abs(H));
axis([0 1400 -0.05 1.05]);
title(‘fir带通滤波器幅频响应‘);
xlabel(‘频率 (Hz)‘‘FontSize‘ 8.0)
ylabel(‘|H(f)|‘)
grid on;
s=xn;
%对信号进行滤波
sf0=filter(bas);
subplot(312);
plot(1000*t(1:l/4)sf0(1:l/4));
title(‘滤波后的时域波形‘);
xlabel(‘时间(ms)‘);
ylabel(‘幅度‘);
grid on;
subplot(313);
% 信号的频谱图
NFFT = 2^nextpow2(l);
Y = fft(sf0NFFT)/l;
f = fs/2*linspace(01NFFT/2);
YM=2*abs(Y(1:NFFT/2));
plot(f(1:NFFT/16)YM(1:NFFT/16));
title(‘滤波后的频谱图‘);
grid on;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 139776 2013-04-08 10:58 数字信号处理课程设计+FIR数字滤波器.doc
文件 2764 2013-04-08 02:48 源代码.m
相关资源
- MATLAB数字信号处理85个实用案例精讲入
- 基于FPGA分布式算法FIR滤波器verilog代码
- 数字信号处理及MATLAB实现__第二版__学
- IIR数字滤波器设计实验报告
- 烟花算法 (Fireworks Algorithm),缩写为
- 数字信号处理实验指导书MAtlab版-数字
- 北邮信通院数字信号处理课件DSP合集
- 数字信号处理及其Matlab的实现
- 音乐检索系统MATLAB程序.zip
- 数字信号处理及其MATLAB实现
- 基于Matlab和FPGA的FIR数字滤波器设计及
- FIR滤波器的VHDL实现
- 数字信号处理(MATLAB版)235940
- 数字信号处理MATLAB版第三版
- 数字信号处理及其Matlab实现 陈怀琛
- MATLAB设计FPGA实现联合ISE和Modelsim仿真
- [数字信号处理及其MATLAB实现——慕课
- 信号分析与处理——MATLAB语言及应用
- MATLAB在数字信号处理中的应用清华大
- 数字信号处理:使用MATLAB.pdf
- 数字信号处理原理及其MATLAB实现
- 基于FPGA与MATLAB的fir滤波器实现Verilo
- MATLAB数字信号处理仿真系统GUI.zip
- ARM官方DSP库FIR滤波器的实现
- 数字信号处理理论算法与实现胡广书
- 数字信号处理课程设计语音信号的采
- 数字信号处理实验报告内含matlab源代
- 数字信号处理及其MATLAB实现.pdf99610
- FIR滤波器的设计及DSP实现
- STM32F4基于DSP库的FIR低通滤波
评论
共有 条评论