UWB Matlab Code
基于Matlab的IR-UWB无线通信信道模型仿真

The paper first briefly introduced the basic knowledge of ultra-wideband wireless communications, which focuses on the TH-UWB signal propagation characteristics and compared the different of ultra-wideband channel model with narrow-band radio channel, based on this analysis of path loss model and the multipath fading model PPM-TH-UWB Ultra-Wideband Signal Transmission. With using MATLAB simulated analysis the use of PPM-TH-UWB and PAM-TH-UWB signal the time-domain expression and the power spectral density (PSD), at the same time on the modified S-V channel model for indoor modeling. On the basis of simulated analysis of the pulse signal of UWB channel model in transmission characteristics, on the impact of signal transmission under the analysis of model parameters.
30个智能算法matlab代码

30个智能算法matlab代码以下是30个使用MATLAB编写的智能算法的示例代码: 1. 线性回归算法:matlab.x = [1, 2, 3, 4, 5];y = [2, 4, 6, 8, 10];coefficients = polyfit(x, y, 1);predicted_y = polyval(coefficients, x);2. 逻辑回归算法:matlab.x = [1, 2, 3, 4, 5];y = [0, 0, 1, 1, 1];model = fitglm(x, y, 'Distribution', 'binomial'); predicted_y = predict(model, x);3. 支持向量机算法:matlab.x = [1, 2, 3, 4, 5; 1, 2, 2, 3, 3];y = [1, 1, -1, -1, -1];model = fitcsvm(x', y');predicted_y = predict(model, x');4. 决策树算法:matlab.x = [1, 2, 3, 4, 5; 1, 2, 2, 3, 3]; y = [0, 0, 1, 1, 1];model = fitctree(x', y');predicted_y = predict(model, x');5. 随机森林算法:matlab.x = [1, 2, 3, 4, 5; 1, 2, 2, 3, 3]; y = [0, 0, 1, 1, 1];model = TreeBagger(50, x', y');predicted_y = predict(model, x');6. K均值聚类算法:matlab.x = [1, 2, 3, 10, 11, 12]; y = [1, 2, 3, 10, 11, 12]; data = [x', y'];idx = kmeans(data, 2);7. DBSCAN聚类算法:matlab.x = [1, 2, 3, 10, 11, 12]; y = [1, 2, 3, 10, 11, 12]; data = [x', y'];epsilon = 2;minPts = 2;[idx, corePoints] = dbscan(data, epsilon, minPts);8. 神经网络算法:matlab.x = [1, 2, 3, 4, 5];y = [0, 0, 1, 1, 1];net = feedforwardnet(10);net = train(net, x', y');predicted_y = net(x');9. 遗传算法:matlab.fitnessFunction = @(x) x^2 4x + 4;nvars = 1;lb = 0;ub = 5;options = gaoptimset('PlotFcns', @gaplotbestf);[x, fval] = ga(fitnessFunction, nvars, [], [], [], [], lb, ub, [], options);10. 粒子群优化算法:matlab.fitnessFunction = @(x) x^2 4x + 4;nvars = 1;lb = 0;ub = 5;options = optimoptions('particleswarm', 'PlotFcn',@pswplotbestf);[x, fval] = particleswarm(fitnessFunction, nvars, lb, ub, options);11. 蚁群算法:matlab.distanceMatrix = [0, 2, 3; 2, 0, 4; 3, 4, 0];pheromoneMatrix = ones(3, 3);alpha = 1;beta = 1;iterations = 10;bestPath = antColonyOptimization(distanceMatrix, pheromoneMatrix, alpha, beta, iterations);12. 粒子群-蚁群混合算法:matlab.distanceMatrix = [0, 2, 3; 2, 0, 4; 3, 4, 0];pheromoneMatrix = ones(3, 3);alpha = 1;beta = 1;iterations = 10;bestPath = particleAntHybrid(distanceMatrix, pheromoneMatrix, alpha, beta, iterations);13. 遗传算法-粒子群混合算法:matlab.fitnessFunction = @(x) x^2 4x + 4;nvars = 1;lb = 0;ub = 5;gaOptions = gaoptimset('PlotFcns', @gaplotbestf);psOptions = optimoptions('particleswarm', 'PlotFcn',@pswplotbestf);[x, fval] = gaParticleHybrid(fitnessFunction, nvars, lb, ub, gaOptions, psOptions);14. K近邻算法:matlab.x = [1, 2, 3, 4, 5; 1, 2, 2, 3, 3]; y = [0, 0, 1, 1, 1];model = fitcknn(x', y');predicted_y = predict(model, x');15. 朴素贝叶斯算法:matlab.x = [1, 2, 3, 4, 5; 1, 2, 2, 3, 3]; y = [0, 0, 1, 1, 1];model = fitcnb(x', y');predicted_y = predict(model, x');16. AdaBoost算法:matlab.x = [1, 2, 3, 4, 5; 1, 2, 2, 3, 3];y = [0, 0, 1, 1, 1];model = fitensemble(x', y', 'AdaBoostM1', 100, 'Tree'); predicted_y = predict(model, x');17. 高斯混合模型算法:matlab.x = [1, 2, 3, 4, 5]';y = [0, 0, 1, 1, 1]';data = [x, y];model = fitgmdist(data, 2);idx = cluster(model, data);18. 主成分分析算法:matlab.x = [1, 2, 3, 4, 5; 1, 2, 2, 3, 3]; coefficients = pca(x');transformed_x = x' coefficients;19. 独立成分分析算法:matlab.x = [1, 2, 3, 4, 5; 1, 2, 2, 3, 3]; coefficients = fastica(x');transformed_x = x' coefficients;20. 模糊C均值聚类算法:matlab.x = [1, 2, 3, 4, 5; 1, 2, 2, 3, 3]; options = [2, 100, 1e-5, 0];[centers, U] = fcm(x', 2, options);21. 遗传规划算法:matlab.fitnessFunction = @(x) x^2 4x + 4; nvars = 1;lb = 0;ub = 5;options = optimoptions('ga', 'PlotFcn', @gaplotbestf);[x, fval] = ga(fitnessFunction, nvars, [], [], [], [], lb, ub, [], options);22. 线性规划算法:matlab.f = [-5; -4];A = [1, 2; 3, 1];b = [8; 6];lb = [0; 0];ub = [];[x, fval] = linprog(f, A, b, [], [], lb, ub);23. 整数规划算法:matlab.f = [-5; -4];A = [1, 2; 3, 1];b = [8; 6];intcon = [1, 2];[x, fval] = intlinprog(f, intcon, A, b);24. 图像分割算法:matlab.image = imread('image.jpg');grayImage = rgb2gray(image);binaryImage = imbinarize(grayImage);segmented = medfilt2(binaryImage);25. 文本分类算法:matlab.documents = ["This is a document.", "Another document.", "Yet another document."];labels = categorical(["Class 1", "Class 2", "Class 1"]);model = trainTextClassifier(documents, labels);newDocuments = ["A new document.", "Another new document."];predictedLabels = classifyText(model, newDocuments);26. 图像识别算法:matlab.image = imread('image.jpg');features = extractFeatures(image);model = trainImageClassifier(features, labels);newImage = imread('new_image.jpg');newFeatures = extractFeatures(newImage);predictedLabel = classifyImage(model, newFeatures);27. 时间序列预测算法:matlab.data = [1, 2, 3, 4, 5];model = arima(2, 1, 1);model = estimate(model, data);forecastedData = forecast(model, 5);28. 关联规则挖掘算法:matlab.data = readtable('data.csv');rules = associationRules(data, 'Support', 0.1);29. 增强学习算法:matlab.environment = rlPredefinedEnv('Pendulum');agent = rlDDPGAgent(environment);train(agent);30. 马尔可夫决策过程算法:matlab.states = [1, 2, 3];actions = [1, 2];transitionMatrix = [0.8, 0.1, 0.1; 0.2, 0.6, 0.2; 0.3, 0.3, 0.4];rewardMatrix = [1, 0, -1; -1, 1, 0; 0, -1, 1];policy = mdpPolicyIteration(transitionMatrix, rewardMatrix);以上是30个使用MATLAB编写的智能算法的示例代码,每个算法都可以根据具体的问题和数据进行相应的调整和优化。
基于UWB和IMU的煤矿机器人紧组合定位方法研究

基于UWB 和IMU 的煤矿机器人紧组合定位方法研究郁露, 唐超礼, 黄友锐, 韩涛, 徐善永, 付家豪(安徽理工大学 电气与信息工程学院,安徽 淮南 232001)摘要:针对煤矿井下环境复杂,现有煤矿机器人定位方法受非视距误差等因素影响导致定位精度低、实时性不高等问题,提出了一种基于UWB (超宽带)和IMU (惯性测量单元)的煤矿机器人紧组合定位方法。
首先利用UWB 模块测量煤矿机器人与UWB 基站之间的距离,使用煤矿机器人与UWB 基站之间的距离真实值和实测值训练最小二乘支持向量机(LSSVM )模型,得到LSSVM 修正模型;然后将煤矿机器人定位过程中UWB 模块测得的实测值作为LSSVM 修正模型的输入,通过LSSVM 修正模型对UWB 实测值进行修正,减小非视距误差对定位精度的影响,得到较为准确的距离信息;最后将经过LSSVM 修正模型修正后的测距信息作为误差状态卡尔曼滤波(ESKF )的量测输入,与惯性导航解算出的位置信息构成量测方程,使用ESKF 对UWB 测距修正值与惯性导航解算的距离信息紧组合,完成状态更新,得到更为精确的位置信息,实现煤矿机器人的精确定位。
UWB 基站不同布置方案下的模拟实验结果表明:使用LSSVM 修正模型可使UWB 测距信息更为准确,进而提高定位精度。
静态定位实验时,当4个UWB 基站等高对称布置时,定位的均方根误差由0.146 4 m 减小到0.1398 m ;当4个UWB 基站不等高对称布置时,均方根误差由0.300 8 m 减小到0.200 6 m ;当4个基站无规律布置时,均方根误差由0.317 5 m 减小到0.314 2 m 。
因此,在实际场景中,应尽可能使UWB 基站等高对称布置。
动态定位实验时,通过LSSVM 修正模型对UWB 测距信息进行修正后的融合定位轨迹相较于修正前的融合定位轨迹更接近煤矿机器人的真实轨迹,验证了该紧组合定位方法能够减小非视距误差,提高定位精度。
matlab的编码大全

s2='Shannon编码平均码字长度L:';
s3='Shannon编码的编码效率q:';
disp(s0);
disp(s1),disp(B),disp(W);
disp(s2),disp(L);
disp(s3),disp(q);
附录D Fano编码
%函数说明:%
function [W,L,q]=fano(P)
%提示错误信息
if (length(find(P<=0))~=0)
error('Not a prob.vector,negative component'); %判断是否符合概率分布条件
d
if (abs(sum(P)-1)>10e-10)
error('Not a prob.vector,component do not add up to 1') %判断是否符合概率和为1
n=length(current_P);
add(1)=current_P(1);
% 1)求概率的依次累加和
for i=2:n
add(i)=0;
add(i)=add(i-1)+current_P(i);
end
% 2)求概率和最接近的两小组
s=add(n);
for i=1:n
temp(i)=abs(s-2*add(i));
H=entropy(P,2); %计算信源熵
q=H/L; %计算编码效率
%打印输出结果
for i=1:n
B{i}=i;
end
[n,m]=size(W);
一、MATLAB之基础入门代码

⼀、MATLAB之基础⼊门代码序⾔本篇旨在列出matlab⼊门及在科研中必须掌握的⼀些基础代码,主要内容包括:matkab矩阵运算、绘图、函数流程控制、⽂件、图像、函数等基本操作,以便于随查随⽤,⾄于常⽤的算法本篇鲜有涉及。
%% matlab总述% matlab中基本数据结构是矩阵,即使单独⼀个数也视为⼀个1*1的矩阵%%%% 矩阵创建&赋值操作a=5;b=[1 2 3];c=[1;2;3];d=[1 2 3;4 5 6;7 8 9];x=[0:0.5:2]; % 0.5是步长x=zeros(4); % 4*4零矩阵x=zeros(2,3);% 2*3零矩阵x=ones(5,5); % 1矩阵x=eye(5); % 5阶单位阵,与Octave语法完全⼀致[r,c]=size(x); % 返回x矩阵的⼤⼩x=linspace(0,3,5); % 0到3间均匀⽣成5个点,⽣成函数的采样点[x,y,z]=meshgrid([],[],[]); % ⽤以⽣成函数的采样点%%%% matlab中的保留字piInf % ⽆穷⼤NaN % 未定式,0/0%%%% 数组计算a=a+b;a=a-b;% 数组加减a=b*c;a=b*inv(x)% 数组乘除 inversea=b.*c; % 对应位操作./ .* .^a=a';a=a(:);% 数组拉直%%%% 数组索引与操作% 括号是索引符号,如([],[])x=a(2,2);x=a(5);x=a(1:2,3:4); %([],[])x(x>72)=x(x>72)-72 % 数组的逻辑索引,x>72⾃⾝就是⼀个0/1⼆维数组,x(x>72)就是访问对应为1位置处的值% 数组赋值/改值a(2,2)=0a(5)=9a(1:2,3:4)=ones(2,2)a(1:2,[3,4,7,11])=ones(2,2) % matlab中[1:9],1:9是基本数据类型%%%% 数组的⽐较和逻辑运算,符合条件的同⼀位置为1,不符合则为0x=[1 2 3 4 5 6 7];y=[1 2 4 5 5 6 8];eq=(x==y); %上⾯说过了,x==y⾃⾝也是⼀个0/1⼆维数组eq=(x>2)&(y<5); % 与 &两边既可以是标量也可以是向量 VS. &&两边只能是标量eq=(x>2)|(y<5); % 或eq=xor(x>4,y<5); % 异或x(x<3)=-1; % (x<3)是⼀个0/1数组,x(x<3)就是把(x<3)数组中1对应位置的位置访问,再将访问到的位置赋值1,⽐较和逻辑运算与数组索引结合xy=[x,y]; xy=[x;y]; % ⽤已有数组构建新数组,数组融合img=cat(3,R,G,B); % ⾼级数组融合xy(:,xy(1,:)<4)=0 %逻辑运算结果矩阵也可以⽤来数组索引%%%% 数组操作函数x=[1 2 3;4 5 6;7 8 9];x=flipud(x);%上下转x=fliplr(x);%左右转x=rot90(x);%逆时针旋转90度x=pinv(x);%数组求(伪)逆sum(x,1); % x每列求和sum(x,2); % x每⾏求和sum(x(:)); % 求全和,:表⽰将数组拉直maxn=max(x);% 返回每列最⼤值maxn=max(x);% 返回每列最⼤值maxn=max(x(:)); % 返回全局最⼤值min(); % ⽤法同max()%%%% 常⽤数学函数% 注意matlab中矩阵是基本数据结构,因此所有函数都是对矩阵中每个x_i操作y=sin(x);y=abs(x);%绝对值y=sqrt(x);%开⽅y=ceil(x);%向上取整y=floor(x);%向上取整y=round(x);%四舍五⼊取整y=rand(r,c);%⽣成随机矩阵b=sum(a,idm);%求和函数,dim=1 表⽰对每⼀列求和,dim=2 表⽰对每⼀⾏求和tabulate(detect_result)% detect_result是⼀个列向量,该函数⽤以频数、频率统计%%%% MATLAB函数基本语句for i=1:2:100 %endwhile 1if a<1breakendendfunction [output1,]=functionname(input1,) % 函数定义command1command2output1=%%%% 基本绘图%plotx=0:0.001*pi:2*pi;y=sin(x);z=cos(x);plot(x,y,'-ob','LineWidth',1.5) % 标出数据点的折线图hold onplot(x,z,'rs') % 散点图drawnow % 动画图xlabel('x')ylabel('y')title('图')axis equal % 两轴单位长度相等axis([-2,2,-2,2]) % 控制坐标轴范围set(gca,'XTick',0:pi/2:4*pi); % 设置坐标轴刻度间距,⼀般与下⼀⾏命令搭配set(gca,'XTickLabel',{'0','0.5*pi','pi','1.5*pi','2*pi','2.5*pi','3*pi','3.5*pi','4*pi'})% 设置坐标轴刻度标号xlim([-2,2]) % 控制坐标轴范围text(0,0,'(0,0)') % 在数据曲线上点(x,y)处,标出'(3,5)'legend('cos(x)','sin(x)','sin(x)-cos(x)') % 依照绘图的顺序依次标注图例saveas(gcf,strcat('ch',num2str(i),'.emf')) % 保存plot图⽚,gcf是plot的句柄plot(X)%绘制⼆维矩阵,以⾏号为横坐标,各列为纵坐标plot(X);% plot制作动图for k=1:10plot (fft(eye(k+10))) % eye()单位阵,fft()傅⾥叶变换,plot()绘制矩阵axis equalM(k)=getframe; % 截取当前窗⼝作为影⽚帧endmovie(M,50) %播放多帧图⽚,M 50次%极坐标plar(theta,r,LineSpec)t=0:0.1:3*pi;polar(t,abs(cos(5*t)));% 快速⽅程绘图fplot('x-cos(x^2)',[-4,4]);% 绘制y=x-cos(x^2)ezplot('y-f(x),[-6 6 -8 8]');% ezplot('⽅程式',[xmin xmax ymin ymax])ezplot('cos(3*t)','sin(3*t)',[0:2*pi]);% ezplot('x参数式','y参数式',[tmin,tmax])%%%% 参数⽅程作图(可以画出很有趣的⾮函数图像)t=0:pi/50:2*pi;x=sin(t);y=cos(t);plot(x,y)axis([-1.1,1.1,-1.1,1.1])axis equal%%%%x=sin(t)y=cos(t)z=tplot3(x,y,z) % 三维曲线参数⽅程作图grid on % 开⽹格%%%%三维曲⾯[x,y]=meshgrid(-pi:0.1:pi); % 画函数采样点z=sin(x).*cos(y);mesh(x,y,z) % 画三维曲⾯figure() % 开新画板surf(x,y,z) % 画中间插值的三维曲⾯(有渲染效果)%%%% ⽂件数据读取% .txt纯数据⽂件⽂件data=load('c:\desktop\score.txt')% .txt⽂本⽂件fid=fopen('score.txt','r')line1=fgetl(fid)%数据按分割%数据类型转换line2=fgetl(fid)fclose(fid);fid=fopen('score.txt','w')fprintf(fid,'会当凌绝顶’)fprintf(fid,'%d⽉⼯资 %6.1f\n',[1,2,3,4;20000,19999,20010,25000,23000])fclose(fid);% excel⽂件data=xlsread('filename.xls','Sheet1','A3:C6');data(isnan(data))=0;%空位补零xlswrite('filename.xls',{'t','w'},'Sheet1','B1:C1')%图⽚⽂件img=imread('leave.jpg')% 图⽚读取image(img) % 图⽚显⽰lip(234:435,112:300,:)%图⽚切⽚imshow(lip) % 图⽚显⽰imwrite(img,'c:\\desktop\\figure.emf')% UI交互式导⼊图⽚[FileName PathName FilterIndex]=uigetfile({'*.jpg','*.bmf'},'请导⼊图⽚','*.jpg','MultiSelect','on') if ~ FilterIndexreturnend%视频⽂件data=VideoReader('sport.avi')% data是⼀结构体frame=read(data,25)% 读取视屏中的某⼀帧,即图⽚imshow(frame)% 对视频处理就是循环处理每⼀帧%%%% 线性⽅程求解、拟合、回归x=A\B%⼀元线性拟合x=[2.410 2.468 2.529 2.571 2.618 2.662 2.715 2.747 2.907 2.959 2.997];y=[0 0.800 1.695 2.290 2.965 3.595 4.365 4.810 7.125 7.890 8.425];a=polyfit(x,y,1)%⼀阶拟合 y=a1 x+ a2y=polyval(a,x) % 获得拟合表达式%⾃定义拟合p=fittype('a*x+b*sin(x)+c');% 指定拟合模型f=fit(x,y,p)% 获得拟合函数,x和y必须为列向量plot(f,x,y)% 画出拟合图%差值 x=[1:10] y=[1:10],线性回归求xi对应的yiyi=interp1(x,y,xi,'linear');%线性回归 y=f(x1,x2,x3)%%%%微分⽅程求解%解析解syms y(x);ode=diff(y,x)-y==0;init=y(0)==1;dsolve(ode,init)%dsolve('D2y+4*Dy+24*y=0','y(0)=0,Dy(0)=15','x')%尤克—库塔数值解%%% 符号对象的创建,matlab中之前都是数值计算,这⾥是符号运算a=sym([1/2 sqrt(5)]);y=sym('2*sin(x)*cos(x)');y=simple(y);syms x y;z=cos(x)*sin(y);% 符号表达式及函数的创建, matlab默认是数值运算,符号运算需要提前声明。
matlab霍夫曼编码函数

matlab霍夫曼编码函数Matlab是一个广泛应用于科学计算和工程领域的高级计算机语言和环境。
它提供了各种函数和工具箱,可用于解决各种数学问题和实现不同的算法。
霍夫曼编码是一种数据压缩算法,它通过将频率最高的字符编码为较短的比特串,从而实现对数据的有效压缩。
在本文中,我们将介绍如何在Matlab中实现霍夫曼编码函数。
首先,我们需要了解霍夫曼编码的基本原理。
该算法基于字符出现的频率构建一个霍夫曼树,其中出现频率较高的字符位于树的较低层,而出现频率较低的字符位于树的较高层。
然后,通过从根节点到每个字符的路径上的比特串表示字符的编码。
这样,频率较高的字符将使用较短的比特串编码,而频率较低的字符将使用较长的比特串编码。
在Matlab中实现霍夫曼编码,我们首先需要计算每个字符在给定数据中的出现频率。
我们可以使用Matlab提供的`histcounts`函数来实现这一点。
`histcounts`函数将数据分成一定数量的称为“bins”的区间,并计算每个区间中的数据的频数。
matlabdata = 'abcdefgh'; 给定的数据frequencies = histcounts(data, unique(data)); 计算每个字符的频数上述代码首先定义了一个包含字符的字符串,然后使用`unique`函数获取字符串中的唯一字符。
然后,`histcounts`函数基于这些唯一字符计算每个字符的频数,并将结果存储在名为“frequencies”的数组中。
下一步是构建霍夫曼树。
我们可以使用以下步骤来实现此操作:1. 创建一个含有所有字符频数的结点集合,并按照频率从低到高对结点排序。
2. 从频率最低的两个结点中创建一个新的父节点,并将这个父节点的频率设置为这两个结点的频率之和。
将这个新的父节点添加到结点集合中,并删除这两个被合并的结点。
3. 重复步骤2,直到只剩下一个节点为止。
这个节点将成为霍夫曼树的根节点。
(完整word版)MatLab代码大全

第2章图像获取2.3.2 二维连续傅里叶变换例2.2figure(1); %建立图形窗口1[u,v] = meshgrid(-1:0.01:1); %生成二维频域网格F1 = abs(sinc(u.*pi));F2 = abs(sinc(v.*pi));F=F1.*F2; %计算幅度频谱F=|F(u,v)|surf(u,v,F); %显示幅度频谱,如图2.3(b)shading interp; %平滑三维曲面上的小格axis off; %关闭坐标系figure(2); %建立图形窗口2F1=histeq(F); %扩展F的对比度以增强视觉效果imshow(F1); %用图像来显示幅度频谱,如图2.3(c)第3章图像变换3.4.4 二维FFT的MATLAB实现例3.2 简单图像及其傅里叶变换MATLAB程序:%建立简单图像d并显示之d = zeros(32,32); %图像大小32⨯32d(13:20,13:20) = 1; %中心白色方块大小为8⨯8figure(1); %建立图形窗口1imshow(d,'notruesize');%显示图像d如图3.5(a)所示%计算傅里叶变换并显示之D = fft2(d); %计算图像d的傅里叶变换,fft2(d) = fft(fft(d).').'figure(2); %建立图形窗口2imshow(abs(D),[-1 5],'notruesize'); %显示图像d的傅里叶变换谱如3.5(b)所示例3.3 MATLAB图像及其傅里叶变换谱MATLAB程序:figure(1);load imdemos saturn2; %装入MA TLAB图像saturn2imshow(saturn2); %显示图像saturn2如图3.6(a)所示figure(2);S= fftshift(fft2(saturn2)); %计算傅里叶变换并移位imshow(log(abs(S)),[ ]); %显示傅里叶变换谱如3.6(b)所示例3.4 真彩图像及其傅里叶变换谱MATLAB程序:figure(1);A=imread('image1.jpg'); %装入真彩图像,见图1.1(b)B=rgb2gray(A); %将真彩图像转换为灰度图像imshow(B); %显示灰度图像如图3.7(a)所示C=fftshift(fft2(B)); %计算傅里叶变换并移位figure(2);imshow(log(abs(C)),[ ]); %显示傅里叶变换谱如3.7(b)所示3.5.4 离散余弦变换的MATLAB实现例3.5 计算并显示真彩图像余弦变换的MATLAB程序如下:RGB=imread('image2.jpg'); %装入真彩图像figure(1);imshow(RGB); %显示彩色图像GRAY=rgb2gray(RGB); %将真彩图像转换为灰度图像figure(2);imshow(GRAY); %显示灰度图像如图3.10(a)所示DCT=dct2(GRAY); %进行余弦变换figure(3);imshow(log(abs(DCT)),[ ]); %显示余弦变换如图3.10(b)所示。
【国家自然科学基金】_跳频系统_基金支持热词逐年推荐_【万方软件创新助手】_20140731

科研热词 推荐指数 差分跳频 5 跳频 4 跳频通信 3 部分频带干扰 2 跳频序列 2 混沌序列 2 抗干扰 2 宽间隔 2 多用户检测 2 双频同步 2 rs码 2 g函数 2 频谱接入 1 频谱感知 1 频率转移函数 1 频率直方图 1 频率分配 1 非系统 1 非相干序列检测 1 非平稳 1 防冲突 1 采样频偏 1 部分可观察马尔可夫决策过程 1 通信对抗 1 选择分集合并 1 逆g函数 1 迭代解调译码 1 运动控制 1 载波频偏 1 跳频多址接入 1 跳频信号 1 读写器 1 误码率 1 误比特率 1 认知无线电 1 蓝牙 1 自由距离 1 编码扩频 1 纠错性 1 系统吞吐量 1 空间受限平台 1 码字容量 1 短波差分跳频 1 短波 1 相干检测 1 相关距离 1 盲源分离 1 片上系统平台 1 混沌 1 汉明相关性 1 正交频分复用 1 有限域 1
科研热词 短波 迭代译码 自适应干扰抵消 时空混沌 快速跳频 差分跳频 同址干扰 高速跳频 频谱空洞检测 部分频带干扰 逐符号译码 迭代检测 软件雷达 跳频通信 跳频系统 跳频宽带瑞利衰落信道 跳频同步 跳频 跳扩 误跳纠正 误码率 认知跳频 认知系统 认知无线电 莱斯正弦和 节点 自适应跳频通信 自动链路建立 窄带接收 窄带 稳定性 相关特性 混沌 混合跳扩 水声通信 比特率 比特交织编码调制(bicm) 最小均方算法 早迟门 数字滤波器:相关性 探测模式 扩频 干扰状态估计 干扰温度 差分跳频(dfh) 导频 多线程 多级跳频 多址 增益 后向散射雷达 同步捕获
53 54 55 56 57 58 59
rfid max274 lmx2315 labview虚拟仪器 fh/mfsk dsp chebyshev带通滤波器
1 1 1 1 1 1 1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Ts=1e-2;% sample interval
A=2*sqrt(2/3);% the amplitude
a=-10;
b=10;
t=a:Ts:b; % the sample point stored in a matrix
p=A*(1-4*pi*t.^2).*exp(-2*pi*t.^2);% the gaussian monocycle
lenp=length(p);
N=1000000;
intg=0;
step=(b-a)/N;
for i=1:N
intg=intg+step*A*(1-4*pi*(i*step+a)^2)*exp(-2*pi*(i*step+a)^2); end
Dc=intg;
Energy is 1
Ts=1e-2;% sample interval
A=2*sqrt(2/3);% the amplitude
a=-2;
b=2;
t=a:Ts:b; % the sample point stored in a matrix
p=A*(1-4*pi*t.^2).*exp(-2*pi*t.^2);% the gaussian monocycle
lenp=length(p);
N=1000000;
intg=0;
step=(b-a)/N;
for i=1:N
c=A*(1-4*pi*(i*step+a)^2)*exp(-2*pi*(i*step+a)^2);
intg=intg+step*c*c;
end
Engery=intg;
Ts=1e-2;% sample interval
Nprob=3;%
Nb=2; % Code length; number of bits(pluses) in simulation in one waveform Num=1;% Number of code wraps;
A=2*sqrt(2/3);% the amplitude
t=-2:Ts:2; % time;the sample point stored in a matrix
p=[ A*(1-4*pi*t.^2).*exp(-2*pi*t.^2) ];% the gaussian monocycle
bt=randsrc(1,Nb);% make the pulse represents for '0' or '1';
randsrc(M,N) %generates an M-by-N random bipolar matrix. "-1" and "1" occur with equal %probability.
%bt=ones(1,Nb);
lenp=length(p); % the length of a single gaussian monocycle, the number of %the data stored in the p, should be the same as t
%figure;
plot(p);grid on;
%figure;
plot(Ts*abs(fft(p)));% engery
axis([0 20 0 1]);
hold on;
f=(0:1/Ts)/4; % sample's total duratioin is 4 why divide 4 ,how to calculate %the frequency of the sample points
P=2/sqrt(3)*2*pi*f.^2.*exp(-pi/2*f.^2);
figure;stem(P,'r+');
axis([0 20 0 2]);
grid on;
wf=[];
rand=[];% record the value of the St
for i=1:Nb
Symbol=zeros(1,lenp*Nprob);% sample has the 16 times the time
duration %of a impluse. 1-by-lenp*16 zeros matrix. lenp is the length of single pulse
% Symbol=zeros(1,lenp*2);
%St=lenp*15;% every lenp*16 appear a pluse ,
St=randint(1,1,[1 lenp*(Nprob-1)+1]);
% St=randint(1,1,[1 lenp*15]);
%rand=[rand St];
%ran=randint(1,1,[1 lenp]);%randomly generate a number ,the number
is %from 1 to 16;
Symbol(St:lenp+St-1)=bt(i)*p;
%Symbol(((St-1)*lenp+ran):(St*lenp-1+ran))=bt(i)*p;
%Symbol(St:lenp)=bt(i)*p;
wf=[wf Symbol]; % add another symbol to the wf, so wf has a length
of %Nb*Symbol.
end
int=(1:Num)*length(wf);
%int=(1:Nb*Nprob*Num)*lenp;
Tx=[];
for i=1:Num
Tx=[Tx wf];
end
figure;
plot(Tx);
set(gca,'xtick',int,'ytick',-2:0.5:2);grid on;% change the value of the grid, %use a matrix to store the point you want,
figure;
plot(abs(fft(wf)));
%axis([0 16000 0 56000]);
axis([0 1200 0 0]);。