資源簡介
變采樣和多相濾波器的實(shí)現(xiàn)。本程序?qū)崿F(xiàn)了一個(gè)變采樣程序,中間設(shè)計(jì)濾波器設(shè)計(jì)和插值抽取。其中濾波器設(shè)計(jì)用的是窗函數(shù)法,根據(jù)要求設(shè)計(jì)窗函數(shù),得到窗函數(shù)的長度。接著是插值,濾波,抽取,得到最后變采樣之后的波形文件、另外對比了用直接卷積和多相分解卷積兩種方法最后的結(jié)果。

代碼片段和文件信息
?clc;
?close?all;
?clear?all;
?load(‘InputData.mat‘);
?
?x?=?InputData;
?
?%?let?us?see?it;
?plot(x);
?%?let?us?save?it
?fs_in?=??2.285714e+03?;
?WAVEFILE?=?‘input.wav‘;
?wavwrite(xfs_inWAVEFILE);
?fs_out=?8000;
?%?let?us?listen?it
?sound(xfs_in);
?
?%?output?and?input?ratio?is
?disp([‘Sameprate?Convert?Ratio?is?‘num2str(fs_out/fs_in)]);
?
?%3.5?=7/2
?disp(‘find?a?couple?of?relatively?prime?numbers?7/2?=3.5‘);
?U=7;D=2;
?
?fprintf(‘Upsample?ratio?is?%d\n‘U);
?fprintf(‘Downsample?ratio?is?%d\n‘D);
?
?%Part?A
?%?transition?band?=?0.157080;過渡帶?(Transition-band?=?pi/20)
?%?pass?band?attenuation?<=?7.000000?dB?
?%?stop?band?attenuation?>=?40.000000?dB?
?%?comparing?Anti-alias?filter?and?Anti?mirror?filter
?%?Wc?=?min(pi/7pi/2)Wc?=?pi/7
?%?用海明窗函數(shù)設(shè)計(jì)低通濾波器
?wc?=?pi/7;
?ws=wc+pi/40;
?wp=wc-pi/40;
?
?%Part?B
?deltaw=?ws?-?wp;????????%?過渡帶寬Δω的計(jì)算
?N?=?ceil(6.6*pi/?deltaw)?+?1;????%?按海明窗計(jì)算所需的濾波器階數(shù)N0
?wdham?=?(hamming(N+1))‘;????????%?海明窗計(jì)算
?Wn=wc/(pi)??????;?????????????%?計(jì)算截止頻率這里要用歸一化的,否則fir1函數(shù)不認(rèn)
?b=fir1(NWnwdham);
?[Hw]=freqz(b11024);
?db=20*log10(abs(H));
?%?畫頻響曲線
?figure
?fs_scaled?=1;
?plot(w*fs_scaleddb);title(‘幅度響應(yīng)(單位:?dB)‘);grid
?figure
?fs_scaled?=1;
?plot(w*fs_scaleddb);title(‘幅度響應(yīng)(單位:?dB)‘);grid
?axis([0?pi?-45?5]);?xlabel(‘歸一化頻率‘);?ylabel(‘分貝‘);
?set(gca‘XTickMode‘‘manual‘‘XTick‘[0pi]);
?set(gca‘YTickMode‘‘manual‘‘YTick‘[-455]);
?%系統(tǒng)能承受1024點(diǎn)fft,可以認(rèn)為把濾波器設(shè)置為這么長的長度
?delta_w=?pi/1024;????????????????????????????%搜索;濾波器是1024個(gè)點(diǎn),對應(yīng)著pid的位置,對應(yīng)著fs/2的位置
?Ap=-(min(db(1:1:wp/delta_w+1)))?;??%實(shí)際通帶紋波
?As=-round(max(db(ws/delta_w+1:1:513)))??;??%實(shí)際阻帶紋波
?
?fprintf(‘Actuall?pass?attenuation?%f?dB?required?<=7dB\n‘Ap);
?fprintf(‘Actuall?stop?attenuation?%f??dB?required?>=40dB\n‘As);
?
%???Part?C
%?請清參考附圖
%??Part?D?
%??首先進(jìn)行7倍的插值
?U=7;
??
?Norignal=length(x);
?%??Norignal=1024;
?x=x(1:Norignal);?%截取前N個(gè)點(diǎn)計(jì)算不全算的話可以取前1024個(gè)點(diǎn)
?x1=zeros(1U*length(x));???
?x1(1:U:end)=x;???%對信號進(jìn)行L倍直接插值
?
N?=?length(x1);
%多相分解?134?階濾波器?134?=?67?*?2
for?r=1:67??%每相67個(gè)點(diǎn)
????for?k=1:2??%2倍抽取
????????hh(kr)=b((r-1)*2+k);
????end
end
%各路信號時(shí)延
for?k=1:2
????for?m=1:N-2
????????xk(km)=x1(m+k-1);??%信號進(jìn)入各相經(jīng)過不同的延時(shí)
????end
end
%對時(shí)延后的信號2倍抽取
for?k=1:2
????for?m=1:2:N-2
????????xd(k(m-1)/2+1)=xk(km);
????end
end
%多相濾波
n2=N/2-1;??%抽取后信號的點(diǎn)數(shù)
for?k=1:2
????for?m=1:n2
????????xdk(m)=xd(km);
????end
????for?m=1:67
????????hhk(m)=hh(km);
????end
????y=conv(hhkxdk);n3=n2+67-1;??%卷積之后信號的點(diǎn)數(shù)=N/2-1+14-1=212
????for?m=1:n3
????????y1(km)=y(m);
????end
end
yt=y1(1:)+y1(2:)??;%合并兩相
%?直接做卷積的結(jié)果
%?7倍抽取之后直接送入LPF
x2??=?conv(bx1);
%?再對x2做兩倍的抽取得到x3
for?r=1:length(x2)/2??
????x3(r)?=?x2((r-1)*2+1);
end
%?x3就是直接濾波結(jié)果,把兩者作比較:
figure
plot([100:200]yt(100:200)‘b‘);
hold?on
plot([100:200]x3(100:200)‘r‘);
title(‘Output?comparasion?by?2?ways‘);
legend(‘polyphase‘‘conventional‘);
%?output?the?last?wave?files?at?8k?samperate
wavwrite(3.5*x3fs_out‘output1.wav‘);
w
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????906966??2014-12-13?11:53??PolyphaseFilter\block?diagram?for?a?polyphase?decomposition.bmp
?????文件??????14335??2014-12-13?15:40??PolyphaseFilter\Design.JPG
?????文件???????2977??2014-12-11?09:40??PolyphaseFilter\Email.txt
?????文件???????3948??2014-12-13?15:17??PolyphaseFilter\FilterDesign.asv
?????文件???????3859??2014-12-13?15:20??PolyphaseFilter\FilterDesign.m
?????文件??????13760??2014-12-13?15:07??PolyphaseFilter\input.wav
?????文件??????52974??2014-12-11?09:38??PolyphaseFilter\InputData.mat
?????文件??????48182??2014-12-13?14:33??PolyphaseFilter\output1.wav
?????文件??????48180??2014-12-13?14:33??PolyphaseFilter\output2.wav
?????文件??????70386??2014-12-13?10:19??PolyphaseFilter\六種窗函數(shù)特性表.jpg
?????文件????????139??2014-12-13?11:52??PolyphaseFilter\參考鏈接.txt
?????目錄??????????0??2016-09-20?15:52??PolyphaseFilter
-----------?---------??----------?-----??----
??????????????1165706????????????????????12
評論
共有 條評論