濾波器例項

2022-12-10 20:45:07 字數 3676 閱讀 9244

根據語音頻號選擇合適的濾波器,

程式1:用matlab對原始語音頻號進行分析,畫出它的時域波形和頻譜

fs=22050; %語音頻號取樣頻率為22050

x1=w**read('h:\課程設計2\'); %讀取語音頻號的資料,賦給變數x1

sound(x1,22050); %**語音頻號

y1=fft(x1,1024); %對訊號做1024點fft變換

f=fs*(0:511)/1024;

figure(1)

plot(x1) %做原始語音頻號的時域圖形

title('原始語音頻號');

xlabel('time n');

ylabel('fuzhi n');

figure(2)

freqz(x1) %繪製原始語音頻號的頻率響應圖

title('頻率響應圖')

figure(3)

subplot(2,1,1);

plot(abs(y1(1:512))) %做原始語音頻號的fft頻譜圖

title('原始語音頻號fft頻譜')

subplot(2,1,2);

plot(f,abs(y1(1:512)));

title('原始語音頻號頻譜')

xlabel('hz');

ylabel('fuzhi');

程式2:給原始的語音頻號加上乙個高頻余弦雜訊,頻率為5khz。畫出加噪後的語音頻號時域和頻譜圖,與原始訊號對比,可以很明顯的看出區別。

fs=22050;

x1=w**read('h:\課程設計2\');

f=fs*(0:511)/1024;

t=0:1/22050:(size(x1)-1)/22050;  %將所加雜訊訊號的點數調整到與原始訊號相同

au=0.03

d=[au*cos(2*pi*5000*t)]';    %雜訊為5khz的余弦訊號

x2=x1+d;

sound(x2,22050**加雜訊後的語音頻號

y2=fft(x2,1024);

figure(1)

plot(t,x2)

title('加噪後的訊號');

xlabel('time n');

ylabel('fuzhi n');

figure(2)

subplot(2,1,1);

plot(f,abs(y1(1:512)));

title('原始語音頻號頻譜');

xlabel('hz');

ylabel('fuzhi');

subplot(2,1,2);

plot(f,abs(y2(1:512)));

title('加噪後的訊號頻譜');

xlabel('hz');

ylabel('fuzhi');

程式3:雙線性變換法設計butterworth濾波器

fs=22050;

x1=w**read('h:\課程設計2\');

t=0:1/22050:(size(x1)-1)/22050;

au=0.03;

d=[au*cos(2*pi*5000*t)]';

x2=x1+d;

wp=0.25*pi;

ws=0.3*pi;

rp=1;

rs=15;

fs=22050;

ts=1/fs;

wp1=2/ts*tan(wp/2); %將模擬指標轉換成數字指標

ws1=2/ts*tan(ws/2);

[n,wn]=buttord(wp1,ws1,rp,rs,'s'); %選擇濾波器的最小階數

[z,p,k]=buttap(n); %建立butterworth模擬濾波器

[bap,aap]=zp2tf(z,p,k);

[b,a]=lp2lp(bap,aap,wn);

[bz,az]=bilinear(b,a,fs); %用雙線性變換法實現模擬濾波器到數字濾波器的轉換

[h,w]=freqz(bz,az); %繪製頻率響應曲線

figure(1)

plot(w*fs/(2*pi),abs(h))

grid

xlabel('頻率/hz')

ylabel('頻率響應幅度')

title('butterworth')

f1=filter(bz,az,x2);

figure(2)

subplot(2,1,1)

plot(t,x2) %畫出濾波前的時域圖

title('濾波前的時域波形');

subplot(2,1,2)

plot(t,f1); %畫出濾波後的時域圖

title('濾波後的時域波形');

sound(f1,22050); %**濾波後的訊號

f0=fft(f1,1024);

f=fs*(0:511)/1024;

figure(3)

y2=fft(x2,1024);

subplot(2,1,1);

plot(f,abs(y2(1:512))); %畫出濾波前的頻譜圖

title('濾波前的頻譜')

xlabel('hz');

ylabel('fuzhi');

subplot(2,1,2)

f1=plot(f,abs(f0(1:512))); %畫出濾波後的頻譜圖

title('濾波後的頻譜')

xlabel('hz');

ylabel('fuzhi');

程式4:窗函式法設計濾波器:

fs=22050;

x1=w**read('h:\課程設計2\');

t=0:1/22050:(size(x1)-1)/22050;

au=0.03;

d=[au*cos(2*pi*5000*t)]';

x2=x1+d;

wp=0.25*pi;

ws=0.3*pi;

wdelta=ws-wp;

n=ceil(6.6*pi/wdelta); %取整

wn=(0.2+0.3)*pi/2;

b=fir1(n,wn/pi,hamming(n+1)); %選擇窗函式,並歸一化截止頻率

figure(1)

freqz(b,1,512)

f2=filter(bz,az,x2)

figure(2)

subplot(2,1,1)

plot(t,x2)

title('濾波前的時域波形');

subplot(2,1,2)

plot(t,f2);

title('濾波後的時域波形');

sound(f2,22050); %**濾波後的語音頻號

f0=fft(f2,1024);

f=fs*(0:511)/1024;

figure(3)

y2=fft(x2,1024);

subplot(2,1,1);

plot(f,abs(y2(1:512)));

title('濾波前的頻譜')

xlabel('hz');

ylabel('fuzhi');

subplot(2,1,2)

f2=plot(f,abs(f0(1:512)));

title('濾波後的頻譜')

xlabel('hz');

ylabel('fuzhi');

帶通濾波器濾波

物件1 乙個含有10hz 30hz和60hz的混合正弦波訊號x sin 2 pi t 10 sin 2 pi t 30 sin 2 pi t 60 通過乙個設計的iir帶通橢圓濾波器 elliptic 後,使輸入的混合訊號中頻率為30hz的正弦波訊號通過,而將頻率為10hz和60hz的正弦波訊號大大...

無源濾波器和有源濾波器的區別

工作原理無源濾波器由lc等被動元件組成,將其設計為某頻率下極低阻抗,對相應頻率諧波電流進行分流,其行為模式為提供被動式諧波電流旁路通道 而有源濾波器由電力電子元件和dsp等構成的電能變換裝置,檢測負載諧波電流並主動提供對應的補償電流,補償後的源電流幾乎為純正弦波,其行為模式為主動式電流源輸出。諧波處...

FTTX光濾波器

光濾波器簡介 光濾波器 optical filter 是用來進行波長選擇的儀器,它可以從眾多的波長中挑選出所需的波長,而除此波長以外的光將會被拒絕通過。廣泛應用於dwdm系統內動態波長選擇,dwdm訊號分離,光效能監測,可調諧光雜訊過濾及光放大器雜訊抑制等領域。光復用器 耦合器 是把不同波長的光復用...