⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kindex.m

📁 数字音频信号的调制与解调的源码程序.可保证声音信号怒失真输出
💻 M
字号:
% freq interleaver
% 先求得freq index 'k'
%注意,matlab矩阵元素标号是从1开始的,所以共为1-2048个点
temp(1)=0;
for i_f=2:2048
temp(i_f)=mod((13*temp(i_f-1)+511),2048);
i_f=i_f+1;
end

%产生dn
i_f=1;
j_f=1;
for i_f=1:2048
    if (temp(i_f)>=256)&(temp(i_f)<=1023)
    dn(j_f)=temp(i_f);
    j_f=j_f+1;
elseif (temp(i_f)>=1025)&(temp(i_f)<=1792)
    dn(j_f)=temp(i_f);
    j_f=j_f+1;
    end
    i_f=i_f+1;
end

%产生freq index 'k'
for i_k=1:1536
    k(i_k)=dn(i_k)-255;
    if k(i_k)>769
        k(i_k)=k(i_k)-1;
    end
    i_k=i_k+1;
end
save('k.mat','k');

%现在根据已知的k,找寻一种更简单的freq interleaving的方法
%matrix_k是正变换阵,根据k中的数据,对1536*1536的单位阵施加相应列变换得到
%将待处理的数据右乘matrix_k,根据线性代数的有关理论,即得插值后的新数据
%逆变换时只需再右剩matrix_k的逆矩阵即可

%下面这一块,只要运行一次就好

%先定义空矩阵matrix_k和1536阶单位阵matrix_eye
matrix_k=[];
matrix_eye=eye(1536);
%根据插值表k,对matrix_eye施加相应列变换,构造matrix_k,即为频率插值正变换阵
for i_matrixk=1:1536
   matrix_k=[matrix_k,matrix_eye(:,k(i_matrixk))]; 
end
%求matrix_k的逆矩阵:matrix_k_inv,用来做频率插值的恢复:de_interleaving
matrix_k_inv=inv(matrix_k);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -