《吹管音乐滤波去噪——使用TUKEYWIN设计的FIR滤波器》 第17页 共17页
axis([0 2500 0 2500]);grid on; subplot(3,2,5);plot(t,y_fil);
title('滤波后的音乐信号时间y');grid on; xlabel('时间t');ylabel('幅度'); axis([0,2.5,-1.5,1.5]);
subplot(3,2,6);plot(f,Y_fil);grid on; title('滤波后的音乐信号幅度谱Y'); xlabel('频率f');ylabel('幅度'); axis([0 2500 0 2500]); sound (y_fil,fs,bits);
程序五:
% freqz_m(b,a)函数设计程序
function [db,mag,pha,grd,w] = freqz_m(b,a); % freqz 子程序的改进版本 % [db,mag,pha,grd,w] = freqz_m(b,a);
% db = [0 到pi弧度]区间内的相对振幅(db) % mag = [0 到pi弧度]区间内的绝对振幅 % pha = [0 到pi弧度]区间内的相位响应 % grd = [0 到pi弧度]区间内的群迟延
% w = [0 到pi弧度]区间内的501个频率样本向量 % b = Ha(z)的分子多项式系数(对FIR b=h) % a = Ha(z)的分母多项式系数(对 FIR: a=[1]) [H,w] = freqz(b,a,1000,'whole'); H = (H(1:1:501))'; w = (w(1:1:501))'; mag = abs(H);
db = 20*log10((mag+eps)/max(mag)); pha = angle(H);
% pha = unwrap(angle(H)); grd = grpdelay(b,a,w);
《吹管音乐滤波去噪——使用TUKEYWIN设计的FIR滤波器》 第18页 共17页
% grd = diff(pha); % grd = [grd(1) grd];
% grd = [0 grd(1:1:500); grd; grd(2:1:501) 0]; % grd = median(grd)*500/pi;
程序六:
% ideal_lp(wc,M)函数设计程序 function hd = ideal_lp(wc,M); % 理想低通滤波器计算 % [hd] = ideal_lp(wc,M)
% hd = 0 to M-1之间的理想脉冲响应 % wc = 截止频率(弧度) % M = 理想滤波器的长度 alpha = (M-1)/2; n = [0:1:(M-1)]; m = n - alpha + eps; hd = sin(wc*m) ./ (pi*m);
相关推荐: