fc=1000;
fs=10000;
[n,Wn, beta, ftype] = kaiserord([1000 2000], [1 0],[0.05 0.05],fs); %得出滤波器的阶数
w=2*fc/fs %模拟到数字滤波器的技术指标的转换
window=kaiser(n+1,beta); %使用kaiser窗函数
b=fir1(n,w,window); %使用标准频率响应的加窗设计函数fir1
freqz(b,1,512); %数字滤波器频率响应;
t=(1:100)/fs;
s=sin(2*pi*t*800)+sin(2*pi*t*3000)+sin(2*pi*t*4000); %混和正弦波信号
sf=filter(b,1,s); %对信号s进行滤波滤波器长度为13,归一化截止频率为0.2
cc=ccdsp('boardnum',o,'procnum',o); %建立与CCS的连接对象
int_buffer=createobj(cc,'inp_buffer'); %建立输入数据变量的嵌入式对象
out_buffer=createobj(cc,'out_buffer'); %建立输出数据变量的嵌入式对象
B=createobj(cc,'B'); %建立滤波器系数变量B的嵌入式对象
write(inp_buffer,round(x)); %写信号数据到目标DSP的输入缓冲区
build(cc,'all',30); %重新编译连接工程中的所有文件
run(cc); %运行目标DSP中程序
pause(5); %延时
halt(cc); %终止目标DSP运行
figure
inpbuffer=read(inp_buffer); %读目标DSP中的输入数据
DSPresult=read(out_buffer); %读出目标DSP中的输出数据
subplot(1,2,1)
plot(inbuffer); %画出目标DSP中的输入信号
title('DSP输入数据');
subplot(1,2,2)
plot(DSPresult)
title('DSP滤波结果'); % 画出目标DSP中的滤波结果
评论0