- 博客(16)
- 收藏
- 关注
原创 定点基础知识
S(m,n): 【-2 ^(m-1):1:2 ^(m-1)-1】x (1/2 ^n) ,即【-2 ^(m-1)/(2 ^n):1/2 ^n:(2 ^(m-1)-1) / (2 ^n)】需要注意,若两者都取所能取到的最小数,即 -2^2 x (-2 ^4) =2 ^ 6, S(7,3)无法表示2 ^6。U(m,n): 【0:1:2 ^m-1】x (1/2 ^n) ,即【0:1 / 2 ^n:(2 ^m-1)/(2 ^n)】U(m,n): 无符号数,m位位宽,小数位宽为n,整数位宽为m-n。
2023-07-13 22:19:45
223
原创 上采的两种方法
通常用两种办法上采:第一种:时域插0再过滤波器将采样率增加到M倍可以通过在信号的两个连续值之间插入M-1个样本来实现。具体为:先在信号的两个连续值之间插入M-1个0,再通过低通滤波器。插0:...
2021-08-16 16:45:19
2146
原创 如何画离散信号频谱图
问题:对于离散信号而言,已知样点值、采样频率,如何画出与采样频率对应的幅频曲线?已知样点数为N,采样频率为Fs,数据记为data。则,可画出两种幅频响应: % 第一种,幅频响应频率范围为(0-Fs) Data_f = fft(data); % 频域信号abs_Data_f = abs(Data_f); % 第二种,幅频响应频率范围为(-Fs/2,Fs/2)Datao_f_shift = fftshift(fft(data));abs1_Data_f = abs(Datao_f_shift)
2021-08-12 20:35:58
4445
1
原创 importdata从文件载入变量
在仿真时,经常需要从文件夹里载入变量。在网上搜了一小会,没有结果,特此记录,方便以后翻阅。代码如下:a = importdata('filename\datainsyn_i.txt');很久没有写博客,也很久没有停下来整理知识点了。再过一年就得找工作了,慌。...
2021-07-18 21:25:40
189
原创 IFFT和FFT能量归一化
在进行FFT、IFFT时分别需除sqrt(N),乘sqrt(N),如下:Data = randi([0,1],100,1)+i*randi([0,1],100,1);ifftData = ifft(Data)*sqrt(100);fftData = fft(Data)./sqrt(100);这样做的目的是使能量归一化,即,使得时域和频域数据的能量一样。测试如下:Data_inf = randi([0,1],100,1)+i*randi([0,1],100,1);ifftData = iff
2021-03-14 11:38:35
6904
2
原创 多径瑞利信道的一种matlab产生方法
多径瑞利衰落信道:指信道响应的能量或包络服从瑞利分布。而 单一径的幅度和相位特性可用一复数表示,复数的实部和虚部都服从0均值的同分布高斯过程。以上便是下图产生多径瑞利信道的由来。PowerdB=[0 -2 -7 -10]; % 信道抽头功率分布,in dBDelay=[0 2 4 5]; % 信道时延(采样点)Power=10.^(PowerdB/10); % 信道抽头功率分布,in 线性尺度Ntap=length
2021-01-16 11:05:34
4603
1
原创 OFDM系统进行频率估计
还是上次的小活(求最高频偏和频偏序列长度的关系)。刚给老师看了运行结果,老师很快就指出了我求频偏的那句代码存在错误,并且给我讲解了求频偏的原理。记录下来。(我真是只小菜鸡qaq,老师威武因此,在估计频偏时,应当对前后两段序列中的一段取共轭,之后在点乘。实现代码如下:% x_noise是列向量cfo_est = angle(x_noise(nn).'*conj(x_noise(nn+Nlength(i))))*360/(2*pi);% 采用下面的代码也一样的cfo_est = angle(x_
2020-11-14 11:38:20
1305
原创 MATLAB 转置与共轭转置、在legend中输入数字、求频偏的小收获
最近做一个老师给的小活,有一些代码上的易错点或者小收获,记录下来。MATLAB里共轭转置与转置a = [1+1j,2+2j];a'= [1-1j;2-2j]; % ' 表示求共轭转置a.'= [1+1j;2+2j]; % ' 表示求转置(这个问题已经错了两次了,事不过三啊qaq因此,再求信号功率时,可以用如下代码:sigPow = sig*sig'; % sig是行向量而不是sigPow = sig*sig.'; % sig是行向量lengend 中加入运行产生的数
2020-11-13 17:32:25
504
1
原创 误码率SER和误比特率BER的关系
今天和实验室小伙伴讨论到了SER和BER的关系,弄清楚的那一刻豁然开朗,深觉讨论的重要性。记录下来。在仿真代码时,遇到了如下描述:SER_4state(i) = SER_i;BER_4state(i)=SER_4state(i)/BITS; % BITS指一个符号由几个比特表示,比如,对于QPSK,BITS=2 以QPSK为例,SER = BER2。理解如下:BER = 错误比特数/总比特数。考虑错误符号最多的情况,即错误的每一个比特都单独待在一个符号里。也就是说,错误了多少了比特,就错误了
2020-11-11 16:26:30
8879
1
原创 matlab确定一个向量里是否有小数
在将代码由软件仿真转向硬件实现时,有一个特别需要注意的点:硬件里没有浮点数。而在硬件实现中,如果数据是小数,经常需要扩位来使其整数化。因此,有一个很重要的问题:在MATLAB如何确定一个向量或矩阵中是否有小数。下面给出一种方法:%% 使用rem求余函数find(rem(a,1)~=0); % a是待确定矩阵若a无小数,则返回一个空向量;反之,则返回小数的位置。...
2020-10-25 11:24:11
1270
原创 高斯瑞利信道和高斯白噪声中为何要除以sqrt(2)
已知,已知各径时延、信道功率的瑞利信道和高斯白噪声可以这么产生:%% 多径瑞利信道PowerdB=[0 -8 -17 -21 -25]; % 信道抽头功率分布 ’dB’Delay=[0 3 5 6 8]; % 信道时延(采样点)Power=10.^(PowerdB/10); % 信道抽头功率分布 ’线性尺度’Ntap=length(PowerdB); % 信道抽头数Lch=Delay(end)+1;
2020-09-20 21:28:49
3072
1
原创 randi和randint的转换
randintrandint(m,n) 随机产生取值0/1的size为(m,n)的矩阵randint(m,n,[a b]) 随机产生取值a至b的size为(m,n)的矩阵randint(m,n,b) 随机产生取值0至b的size为(m,n)的矩阵randirandi([a,b],m,n) 随机产生取值a至b的size为( m,n)的矩阵randi(b,m,n)
2020-09-18 16:01:37
2627
2
转载 matlab设置画图范围和间隔
在Matlab画图的时候,系统默认的坐标轴范围以及间隔有时候并不是很合适,如何根据自己的要求来显示呢,Set语句就可以帮忙咯!! 1. set(gca,'xtick',0:100:2500) 功能: 设置X轴坐标范围0到2500,显示间隔是100; 2.set(gca,'ytick',0:100:2500) 功能: 设置X轴坐标范围0到2500,显示间隔是100; 注意set语句要放在绘图语句后面才起作用!
2020-08-25 16:03:01
9129
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人