#include"math.h"

十多年的忻府網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營(yíng)銷網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整忻府建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“忻府網(wǎng)站設(shè)計(jì)”,“忻府網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
void firwin(n,band,fln,fhn,wn,h)
int n,band,wn;
double fln,fhn,h[];
{int i,n2,mid;
double s,pi,wc1,wc2,beta,delay;
double window();
beta=0.0;
if(wn==7)
{printf("input beta parameter of Kaiser window(2beta10)\n");
scanf("%1f",beta);
}
pi=4.0*atan(1.0);
if((n%2)==0)/*如果n是偶數(shù)*/
{n2=n/2+1;/*這行什么意蔽茄思頃并滲*/
mid=1;
}
else
{n2=n/2;
mid=0;
}
delay=n/2.0;
wc1=2.0*pi*fln;
if(band=3) wc2=2.0*pi*fhn;/*先判斷用戶輸入的數(shù)據(jù),如果band參數(shù)大于3*/
switch(band)
{case 1:
{for(i=0;i=n2;i++)
{s=i-delay;
h[i]=(sin(wc1*s)/(pi*s))*window(wn,n+1,i,beta);
h[n-i]=h[i];
}
if(mid==1) h[n/2]=wc1/pi;
break;
}
case 2:
{for(i=0;i=n2;i++)
{s=i-delay;
h[i]=(sin(pi*s)-sin(wc1*s))/(pi*s);
h[i]=h[i]*window(wn,n+1,i,beta);
h[n-i]=h[i];
}
if(mid==1) h[n/2]=1.0-wc1/pi;
break;
}
case 3:
{for(i=0;in2;i++)
{s=i-delay;
h[i]=(sin(wc2*s)-sin(wc1*s))/(pi*s);
h[i]=h[i]*window(wn,n+1,i,beta);
h[n-i]=h[i];
}
if(mid==1)h[n/2]=(wc2-wc1)/pi;
break;
}
case 4:
{for(i=0;i=n2;i++)
{s=i-delay;
h[i]=(sin(wc1*s)+sin(pi*s)-sin(wc2*s))/(pi*s);
h[i]=h[i]*window(wn,n+1,i,beta);
h[n-i]=h[i];
}
if(mid==1)h[n/2]=(wc1+pi-wc2)/pi;
break;
}
}
}
static double window(type,n,i,beta)
int i,n,type;
double beta;
{int k;
double pi,w;
double kaiser();
pi=4.0*atan(1.0);
w=1.0;
switch(type)
{case 1:
{w=1.0;
break;
}
case 2:
{k=(n-2)/10;
if(i=k)
w=0.5*(1.0-cos(i*pi/(k+1)));
break;
}
case 3:
{w=1.0-fabs(1.0-2*i/(n-1.0));
break;
}
case 4:
{w=0.5*(1.0-cos(2*i*pi/(n-1)));
break;
}
case 5:
{w=0.54-0.46*cos(2*i*pi/(n-1));
break;
}
case 6:
{w=0.42-0.5*cos(2*i*pi/(n-1))+0.08*cos(4*i*pi/(n-1));
break;
}
case 7:
{w=kaiser(i,n,beta);
break;
}
}
return(w);
}
static double kaiser(i,n,beta)
int i,n;
double beta;
{
double a,w,a2,b1,b2,beta1;
double bessel0();
b1=bessel0(beta);
a=2.0*i/(double)(n-1)-1.0;
a2=a*a;
beta1=beta*sqrt(1.0-a2);
b2=bessel0(beta1);
w=b2/b1;
return(w);
}
static double bessel0(x)
double x;
{int i;
double d,y,d2,sum;
y=x/2.0;
d=1.0;
sum=1.0;
for(i=1;i=25;i++)
{d=d*y/i;
d2=d*d;
sum=sum+d2;
if(d2雀脊sum*(1.0e-8)) break;
}
return(sum);
}
這是窗函數(shù)法的,當(dāng)然還有其他的比如切比雪夫,零相位濾波什么的,我也在研究,不是很懂哈
這個(gè)我剛好做過(guò)一個(gè)濾波器,事實(shí)上對(duì)時(shí)域信號(hào)做FFT,截取一定點(diǎn)數(shù)再做逆FFT相當(dāng)于理想濾波。設(shè)計(jì)濾波器代碼如下:
f1=100;f2=200;%待濾波正弦信號(hào)頻率
fs=2000;%采樣頻率
m=(0.3*f1)/(fs/2);%定義過(guò)度帶寬
M=round(8/m);%定義窗函數(shù)的長(zhǎng)度
N=M-1;%定義濾波器的階數(shù)
b=fir1(N,f2/fs);%使用fir1函數(shù)設(shè)計(jì)濾波器
%輸入的參數(shù)分別是濾波器的階數(shù)和截止頻率
figure(1)
[h,f]=freqz(b,1,512);%濾波器的幅頻特性圖
%[H,W]=freqz(B,A,N)當(dāng)N是一個(gè)整數(shù)時(shí)函數(shù)返回N點(diǎn)的頻率向量和幅頻響應(yīng)向量
plot(f*fs/(2*pi),20*log10(abs(h)))%參數(shù)分別是頻率與幅值
xlabel('頻率/赫茲');ylabel('增益/分貝');title('濾波器的增益響應(yīng)');
figure(2)
subplot(211)
t=0:1/fs:0.5;%定義時(shí)察液仿間范圍和敗纖步長(zhǎng)
s=sin(2*pi*f1*t)+sin(2*pi*f2*t);%濾波前信號(hào)
plot(t,s);%濾波前的信號(hào)圖像
xlabel('時(shí)間/秒');ylabel('幅度');title('信號(hào)濾波前時(shí)域圖');
subplot(212)
Fs=fft(s,512);%將信號(hào)變換到頻域
AFs=abs(Fs);%信號(hào)頻域圖的幅值埋搭
f=(0:255)*fs/512;%頻率采樣
plot(f,AFs(1:256));%濾波前的信號(hào)頻域圖
xlabel('頻率/赫茲');ylabel('幅度');title('信號(hào)濾波前頻域圖');
figure(3)
sf=filter(b,1,s);%使用filter函數(shù)對(duì)信號(hào)進(jìn)行濾波
%參數(shù)分別為濾波器系統(tǒng)函數(shù)的分子和分母多項(xiàng)式系數(shù)向量和待濾波信號(hào)輸入
subplot(211)
plot(t,sf)%濾波后的信號(hào)圖像
xlabel('時(shí)間/秒');ylabel('幅度');title('信號(hào)濾波后時(shí)域圖');
axis([0.2 0.5 -2 2]);%限定圖像坐標(biāo)范圍
subplot(212)
Fsf=fft(sf,512);%濾波后的信號(hào)頻域圖
AFsf=abs(Fsf);%信號(hào)頻域圖的幅值
f=(0:255)*fs/512;%頻率采樣
plot(f,AFsf(1:256))%濾波后的信號(hào)頻域圖
xlabel('頻率/赫茲');ylabel('幅度');title('信號(hào)濾波后頻域圖');
網(wǎng)頁(yè)題目:濾波函數(shù)c語(yǔ)言 cic濾波器c語(yǔ)言
當(dāng)前URL:http://chinadenli.net/article36/dspggsg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、建站公司、微信公眾號(hào)、App設(shè)計(jì)、網(wǎng)站建設(shè)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)