DSP课程设计实验报告
姓名:
班级:电子1201
学号:
一,已完成的实验
(1)有限冲激响应滤波器(FIR)算法实验
(2)无限冲激响应滤波器(IIR)算法实验
(3)卷积算法
(4)频谱分析
(5)自适应滤波器算法
(6)抽样定理
(7)数字图像直方图统计
(8)数字图像边缘检测(Sobel算子)
(9)数字图像的锐化(LAPLACE算子)
(10)数字图像的取反
(11)数字图像直方图均衡化增强
二,问题与思考
(1)有限冲激响应滤波器(FIR)算法实验
设计高通滤波器,滤除输入信号中的低频分量:
输入信号:fXn[0]=sin((double)fSignal1)+cos((double)fSignal2)/6.0+ cos((double)fSignal3)/3.0;
高通滤波器的输入参数:
float fHn[FIRNUMBER]={
0,-0.0001025599113707,-0.0001403812801142, 0.001777532053825,
-0.004109425530621, 0.00263311864471, 0.008114293349908, -0.02522429510154,
0.03000486593944, 0.004132831502269, -0.08747684055757, 0.1938662840724,
-0.2693096006608, 0.2693096006608, -0.1938662840724, 0.08747684055757,
-0.004132831502269, -0.03000486593944, 0.02522429510154,-0.008114293349908,
-0.00263311864471, 0.004109425530621,-0.001777532053825,0.0001403812801142,
0.0001025599113707, -0
};
滤波结果截图:
由上述的结果可知,频率中的低频成分确实被滤除了,即实现了高通滤波的效果,在这里我们要设计并获得高通滤波器的参数,借助MATLAB工具将设计的指标输入,并获得相应滤波器的输出参数,为在DSP中高通滤波提供参数。实验用了25阶的滤波参数,实现的滤波效果非常好。
(2)无限冲激响应滤波器(IIR)算法实验
修改步进值:
+0.0001
-0.0001
当步进值增加或减少0.0001后,输出信号并没有太大的变化。具体原因应该是修改步进值过小,而显示又采用float类型的变量,故修改后结果之间的差距较小并不能被识别。
(3)卷积算法
两个输入信号为sine波形,两个频率不同的正弦波输入:
由上图可知输出信号的点数为输入信号点数之和,并当输入信号为周期信号时输出信号也为周期信号。
(4)频谱分析
在这里我们选用FFT中用到的频谱进行分析:
由于采样率为128,所以图中的最高频率为fs/2=64Hz,可从图中直接读出三个输入信号的频率分别为1.6Hz,12Hz,35Hz。
此图为归一化频率后频率的值,我们知道其最高频率为64Hz,对应图中0.5的点,则其他位置的频率可由相应的比例关系求出其实际的频率:如f3=fs/2*(0.275/0.5)35.2Hz,由于读取数值时有一定的误差,但是根据此计算公式可大致计算出输入信号的频率为35Hz。
(5)自适应滤波器算法
在这里我们修改步进值+-0.0001来观察步进值对输出波形的影响:
先看未修改时的图形:
由上述图形可以看到自适应滤波器通过不断的调整参数最后输出信号的频率稳定下来,输入和输出之间的差值也在不断的减少,直到最后变为0.
现在看一下修改完步进值后的自适应滤波器的滤波效果:
由图中可以看出由于步进值改变,使得输入输出信号达到同步的时间发生变化,当步进因子增大的时候,同步时间变小,反之,同步时间增大。
(6)抽样定理
问题:
在这里端口p4-27的输出频率为AD采样频率的1/2,虽然可以得到相应的频率但是不明白其数值时怎么样来的。后来在老师的指导下才知道,这个引脚输出的是AD信号的帧同步信号,每当AD采集一次,引脚上的电平值便翻转一次。所以引脚上的输出频率为AD采集的1/2。
输入波形及FFT变换
(7)数字图像直方图统计
①图像信息的分析
分析:直方图中有明显的三个峰值,分别是较黑的背景颜色,用此可以提取背景,另外还有中等亮度的,是属于中间灰色的地面,最后是亮度叫高的峰值,为人物和旗帜,用此可以提取出人物,经后来的实验可以看出直方图非常有用,灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度级内容。任何一幅图像的直方图都包括了可观的信息,某些类型的图像可由其直方图完全描述,对像素点的个数进行处理就可以实现对图像的处理,一般的图像处理也都先进行图像的灰度的读取。
(8)数字图像边缘检测(Sobel算子)
修改为Prewitt 算子进行图像的边缘检测。
程序修改部分:
for ( mi=2;mi<nWidth;mi++,pImg++,pImg1++,pImg2++,pImg3++ )
{
x3=(*pImg1); x6=(*pImg2); x9=(*pImg3);
m_nWork1=x7+x8-x2-x3;
m_nWork2=x3+x6-x4-x7;
if ( m_nWork1<m_nWork2 )
m_nWork1=m_nWork2;
m_nWork2=m_nWork1+x9-x1;
边缘检测的结果:
图像的边缘检测可以用来图像分割。
(9)数字图像的锐化(LAPLACE算子)
修改程序实现用另一模板的拉普拉斯锐化模板实现图像的锐化。
程序修改部分:
for ( mi=2;mi<nWidth;mi++,pImg++,pImg1++,pImg2++,pImg3++ )
{
x3=(*pImg1); x6=(*pImg2); x9=(*pImg3);
m_nWork1=x5<<3; m_nWork1+=x5;
m_nWork2=x1+x2+x3+x4+x6+x7+x8+x9;
m_nWork1-=m_nWork2;
if ( m_nWork1>255 ) m_nWork1=255;
else if ( m_nWork1<0 ) m_nWork1=0;
(*pImg)=m_nWork1;
x1=x2; x2=x3;
x4=x5; x5=x6;
x7=x8; x8=x9;
}
原来模板和变化
由上述图形可知,第二个模板锐化出来的图形,细节更加的清晰。即锐化效果更好。
(10)数字图像的取反
图像的取反是将每个像素点的信息进行二进制取反,再将结果存到一个新数组中显示。
实验结果
(11)数字图像直方图均衡化增强
问题:
图像处理算法为什么进过处理后就能达到增强图片的目的。具体原理不清楚。
实验结果
从实验程序及结果的灰度直方图知道,图像处理就是对图像的不同灰度的个数进行处理达到想要的效果。
第二篇:DSP实验报告
DSP实验报告
1. 问题一:设置硬件设备时,找不到实验设备上的仿真器的型号,F2812 XDS510
Emulator怎么办?
解决的方法:只要找到F2812 XDS5100 Emulator添加即可,再添加成功后在System configuration 的窗口中显示F2812 XDS510 Emulator,多的一个0自动就去去除了。
2.问题二:问什么.c文件编译连接通过后程序点run,依然无法运行,会弹出warning窗口,No valid program is currently loaded into memory.
解决的办法:是因为没有添加.out文件的缘故,弹出warning窗口要选择no, 然后在菜单的File>>load program 弹出窗口,选择Debug文件夹下的.out添加。
3. 问题三:执行write_buffer一行时,如果按F10执行程序和按F11执行程序现象
有和不同。
现象:执行write_buffer一行时。如果按F10执行程序,则程序在mian主函数中运行,如果按F11,则程序进入write_buffe函数内部的程序运行。
4. 问题四:怎样可以看到结构体变量中的每个元素?
解决办法:把str变量加到观察窗口中,点击变量左边的“+”,观察窗口可以展开结构变量,就可以看到结构体变量中的每个元素了。
5. 问题五:在读懂实验2-1程序后,修改了实验2-1的程序,重新编译、连接执
行程序,可是为什么其执行的结果没有改变?
解决办法:对.OUT文件进行重新加载。因为在修改了实验2-1的程序后,重新编译、连接程序,此时.OUT文件已经改变了。如果不重新加载,那么执行的.OUT文件依旧是之前的.OUT文件,其结果将不会改变。
6. 问题六:实验1-1的波形不能显示,显示出杂乱无章的杂声波怎么办?(按实
验指导书应该是正弦波)。
解决办法:原因框中的 第二项Start Address中的 Inp-buffer设置错了,正确的应该是inp_buffer 中间那根划线是关键。最好的办法就是直接从volume.c的文件中复制inp_buffer再粘贴,这样就不会错了,如果自己输入的话,输入法不对,或是输错都容易
出错,不能显示出正确的波形,而这个错误不够细心的话又是比较难发现的。
7. 问题七:在硬件仿真时,为什么打开工程后Debug >>Ruset Cpu 是灰色的,不
能执行。
解决办法:是由于没有没有与硬件连接的缘故,点击Debug >>disconnect进行连接,接连成功的话,CCS左下角的就会由红色变成绿色
。如此,便可以进行Debug >>Ruset Cpu了。