tic Selected_Index = BPLSH(Data,M,L,W); TimeC(Counter1, Counter2, iteration) = toc; Preserved_Size(Counter1, Counter2, iteration) = 100 * numel(Selected_Index)/size(Data,1);
时间: 2024-04-07 07:28:07 浏览: 15
这段代码与第一段代码类似,不过增加了一个新的操作:计算结果的保留比例。具体而言,代码中的 tic 函数用于记录当前时间,toc 函数用于计算从 tic 函数被调用时到 toc 函数被调用时的时间差,即程序的执行时间。这里的程序是调用了 BPLSH 函数,该函数的输入参数包括 Data、M、L 和 W。
在执行完 BPLSH 函数后,代码将计算得到的结果赋值给 Selected_Index 变量,并将程序执行的时间存储在一个三维矩阵 TimeC 中,其中 Counter1 和 Counter2 分别表示两个循环变量的索引,iteration 表示 BPLSH 函数的迭代次数。这样,我们就可以根据不同的参数配置对程序执行时间进行分析和比较。
除了记录程序执行时间之外,代码还计算了结果的保留比例,并将结果存储在一个名为 Preserved_Size 的三维矩阵中。具体而言,代码通过计算 Selected_Index 中元素数量占 Data 行数的比例来得到结果的保留比例,并将其乘以 100 后存储在 Preserved_Size 中。这样,我们就可以根据不同的参数配置对结果的保留比例进行分析和比较。
相关问题
tic Selected_Index = BPLSH(Data,M,L,W); TimeC(Counter1, Counter2, iteration) = toc;
这是一个简单的代码片段,使用了 tic 和 toc 函数来计算程序的执行时间。具体而言,代码中的 tic 函数用于记录当前时间,toc 函数用于计算从 tic 函数被调用时到 toc 函数被调用时的时间差,即程序的执行时间。这里的程序是调用了 BPLSH 函数,该函数的输入参数包括 Data、M、L 和 W。
在执行完 BPLSH 函数后,代码将计算得到的结果赋值给 Selected_Index 变量,并将程序执行的时间存储在一个三维矩阵 TimeC 中,其中 Counter1 和 Counter2 分别表示两个循环变量的索引,iteration 表示 BPLSH 函数的迭代次数。这样,我们就可以根据不同的参数配置对程序执行时间进行分析和比较。
clc; clear; close all; tic; N=128; M=[4 16 32 64]; D=5; c=0.15; nt=0.1289; nr=0.9500; N_ofdm=1000; snr_dB=1:18; SNR=10.^(snr_dB./10); for kk=1:length(snr_dB) N_fft=N*2+2; for jj=1:length(M) base_data=randi([0 1],1,N*N_ofdm*log2(M(jj))); data_temp1= reshape(base_data,log2(M(jj)),[])'; data_temp2= bi2de(data_temp1); mod_data = qammod(data_temp2,M(jj)); data=reshape(mod_data,N,[])'; H_data=zeros(N_ofdm,N_fft); H_data(:,2:N_fft/2)= data; H_data(:,N_fft/2+2:N_fft)= conj(fliplr(data)); ifft_data=ifft(H_data,[],2); ifft_data=ifft_data+0.02*ones(size(ifft_data)); Noise=awgn(ifft_data,SNR(kk),'measured')-ifft_data; Rx_data=ifft_data*nt*nr*exp(-c*D)+Noise; Rx_data=Rx_data/(nt*nr*exp(-c*D)) fft_data=fft(Rx_data,[],2); Rx_psk_data=fft_data(:,2:N_fft/2); demodulation_data = qamdemod(Rx_psk_data',M(jj)); demodulation_data= reshape(demodulation_data,[],1); temp1=de2bi(demodulation_data); err(kk,jj)=sum(sum((temp1~=data_temp1))); end BER(kk,:)=err(kk,:)./(N*N_ofdm*log2(M(jj))); end figure(); for a=1:length(M) semilogy(snr_dB,BER(:,a),'*-','LineWidth',1.5);hold on; end代码逐句解释
clc; clear; close all; %清空命令窗口,清除变量,关闭所有窗口
tic; %开始计时
N=128; %设置子载波数
M=[4 16 32 64]; %设置调制阶数
D=5; %设置距离参数
c=0.15; %设置衰减系数
nt=0.1289; %设置噪声方差
nr=0.9500;
N_ofdm=1000; %设置OFDM符号数
snr_dB=1:18; %设置信噪比(dB)
SNR=10.^(snr_dB./10); %将信噪比转换为线性单位
for kk=1:length(snr_dB) %循环进行不同信噪比下的仿真
N_fft=N*2+2; %设置FFT点数
for jj=1:length(M) %循环进行不同调制阶数下的仿真
base_data=randi([0 1],1,N*N_ofdm*log2(M(jj))); %随机生成基带数据
data_temp1= reshape(base_data,log2(M(jj)),[])'; %将基带数据转换为矩阵形式
data_temp2= bi2de(data_temp1); %将二进制数据转换为十进制数据
mod_data = qammod(data_temp2,M(jj)); %QAM调制
data=reshape(mod_data,N,[])'; %将调制后的数据转换为矩阵形式
H_data=zeros(N_ofdm,N_fft); %初始化频域数据
H_data(:,2:N_fft/2)= data; %填充频域数据
H_data(:,N_fft/2+2:N_fft)= conj(fliplr(data)); %添加共轭对称的数据
ifft_data=ifft(H_data,[],2); %进行IFFT变换
ifft_data=ifft_data+0.02*ones(size(ifft_data)); %添加循环前缀
Noise=awgn(ifft_data,SNR(kk),'measured')-ifft_data; %添加高斯白噪声
Rx_data=ifft_data*nt*nr*exp(-c*D)+Noise; %接收端信号
Rx_data=Rx_data/(nt*nr*exp(-c*D)); %对接收信号进行归一化
fft_data=fft(Rx_data,[],2); %进行FFT变换
Rx_psk_data=fft_data(:,2:N_fft/2); %提取频域数据
demodulation_data = qamdemod(Rx_psk_data',M(jj)); %QAM解调
demodulation_data= reshape(demodulation_data,[],1); %将解调后的数据转换为列向量
temp1=de2bi(demodulation_data); %将十进制数据转换为二进制数据
err(kk,jj)=sum(sum((temp1~=data_temp1))); %计算错误比特数
end
BER(kk,:)=err(kk,:)./(N*N_ofdm*log2(M(jj))); %计算误比特率
end
figure(); %绘制误比特率曲线图
for a=1:length(M)
semilogy(snr_dB,BER(:,a),'*-','LineWidth',1.5);hold on; %绘制误比特率曲线
end
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)