对于采样频率为f(s)=2000赫兹的被采样信号Xn,请设计2500赫兹以上,7500赫兹以下的只通过带宽的带通过滤器,并回答以下问题
1.请确定设计里必要的滤波器截止频率(WL和Wh)的归一化角频率
2.请求出时域的过滤器特性h(n)的式子
3.求当Hn( -5<n<5 )的具体值
4.用Hn( -5<n<5 )过滤后的Xn,求输出信号Yn所需要的手续,并说明这写手续的必要性
大学作业,明天7点截至,实在做不出来求懂得大哥详细的写下每个问题的步骤,跪谢
这不是 C 语言的作业吧?
你目前有什么思路呢?
那你老师有没有给出在哪里的网址测试你的程式?你不会连这个都没听吧?
信号处理工具箱中经常使用的频率是Nyquist频率,它被定义为采样频率的一半,在滤波器的结束选择和设计当中的截止频率均使用Nyquist频率进行归一化处理。
例如,对于一个采样频率为1000Hz的系统,300Hz的归一化即为300/500=0.6。归一化频率的范围在[0,1]之间。如果要将归一化频率转换为角频率,则将归一化频率乘以pi;如果将归一化频率转换成Hz,则将归一化频率乘以采样频率的一半
/**************************************/ /* FIR low pass filter, Direct form */ /* cutoff freq. 1 kHz */ /* order 100 */ /**************************************/ #include "DSK_polling.c" #define ORDER 100 float xn[ORDER+1]; const float hn[ORDER+1] = { 8.48509091e-06, -8.31609328e-04, -6.67256698e-04, -3.36995227e-04, 3.29552972e-04, 9.00744435e-04, 8.73906254e-04, 9.79587163e-05, -9.86905519e-04, -1.55275509e-03, -9.83779166e-04, 5.45358331e-04, 2.01087198e-03, 2.18703622e-03, 6.21431000e-04, -1.80715048e-03, -3.31113710e-03, -2.46482732e-03, 5.47591800e-04, 3.74173842e-03, 4.57792551e-03, 1.91140409e-03, -2.80439593e-03, -6.18506087e-03, -5.27052985e-03, 1.68385595e-05, 6.27191885e-03, 8.68716172e-03, 4.63309534e-03, -3.85018859e-03, -1.08274006e-02, -1.04732907e-02, -1.71024253e-03, 1.00692148e-02, 1.60674887e-02, 1.03854897e-02, -4.77635447e-03, -1.92655655e-02, -2.13474592e-02, -6.56526899e-03, 1.71991140e-02, 3.30369250e-02, 2.58962235e-02, -5.41508820e-03, -4.34663544e-02, -5.93493168e-02, -2.89796892e-02, 5.06828324e-02, 1.55816282e-01, 2.45108508e-01, 2.80071298e-01, 2.45108508e-01, 1.55816282e-01, 5.06828324e-02, -2.89796892e-02, -5.93493168e-02, -4.34663544e-02, -5.41508820e-03, 2.58962235e-02, 3.30369250e-02, 1.71991140e-02, -6.56526899e-03, -2.13474592e-02, -1.92655655e-02, -4.77635447e-03, 1.03854897e-02, 1.60674887e-02, 1.00692148e-02, -1.71024253e-03, -1.04732907e-02, -1.08274006e-02, -3.85018859e-03, 4.63309534e-03, 8.68716172e-03, 6.27191885e-03, 1.68385595e-05, -5.27052985e-03, -6.18506087e-03, -2.80439593e-03, 1.91140409e-03, 4.57792551e-03, 3.74173842e-03, 5.47591800e-04, -2.46482732e-03, -3.31113710e-03, -1.80715048e-03, 6.21431000e-04, 2.18703622e-03, 2.01087198e-03, 5.45358331e-04, -9.83779166e-04, -1.55275509e-03, -9.86905519e-04, 9.79587163e-05, 8.73906254e-04, 9.00744435e-04, 3.29552972e-04, -3.36995227e-04, -6.67256698e-04, -8.31609328e-04, 8.48509091e-06};
void main()
{
short yn;
int k;
float acc;
InitDSK(cach_bk4); /* Initialize DSK */
for (k=0; k<=ORDER; k++) xn[k] = 0.0;
while(1) /* Endless loop */
{
xn[0] = (float)McBSP0ReadRdy(); /* input */
acc = 0.0;
for (k=0; k<=ORDER; k++) /* multiply and accumulate */
acc = acc + hn[k]*xn[k];
yn = (short)acc & 0xFFFE;
for (k=ORDER; k>0; k--) /* shift input samples */
xn[k] = xn[k-1];
McBSP0Write(yn); /* output */
}
}
参考这个
https://zhuanlan.zhihu.com/p/24698483
残次不齐,c无敌