这一段程序原来在MATLAB里运行过,但是放在syslab没能运行成功,求帮忙!另外,能否帮忙解惑向量与矩阵在运算时是否有不同的要求,为什么要区分这两种定义呢?非常感谢!!!
正弦信号+高斯白噪声
N=16; #滤波器长度
fs=2000; #采样频率
fc=500; #低通滤波器的截止频率
B=12; #量化位数
#生成blackman窗函数
w_kais=blackman(N);
#采用fir1函数设计FIR滤波器
b_kais=fir1(N-1,fc*2/fs,"lowpass",w_kais);
#量化滤波器系数
Q_kais=round(b_kais/max(abs(float(b_kais)))(2^(B-1)-1))
#转化成16进制数补码
Q_h=dec2hex(Q_kais+2^B(Q_kais<0));
#求滤波器的幅频响应
m_kais=20log(abs(fft(b_kais,1024)))/log(10); m_kais=m_kais-max(m_kais);
Q_kais=20log(abs(fft(Q_kais,1024)))/log(10); Q_kais=Q_kais-max(Q_kais);
#设置幅频响应的横坐标单位为Hz
x_f=[0:(fs/length(m_kais)):fs/2];
#只显示正频率部分的幅频响应
m5=m_kais(1:length(x_f));
m6=Q_kais(1:length(x_f));
#绘制幅频响应曲线
plot(x_f,m5,'-',x_f,m6,'--');
xlabel('频率(Hz)');ylabel('幅度(dB)');
legend('未量化','12bit量化');
grid;