傅里叶级数逼近原信号波形

题目如下:

 

 这里做完了1 3 问,第二问不知道用什么来表示误差,故放到后面再做。

记录一下

参考博文:https://blog.csdn.net/qq_43521103/article/details/115665049

https://blog.csdn.net/xsz591541060/article/details/97641058

https://blog.csdn.net/weixin_44202064/article/details/103024870

 

 

 

 

 

 

 

 记录一下做这个实验遇到的问题及解决方法

  • 输出打印数据
fprintf('%f %f %f %f\n',x1,y1,x2,y2);
  • 输出两个点之间的连线
t=15/2/pi;
x1=cos(t);
y1=sin(t);
x2=cos(t+pi);
y2=sin(t+pi);
plot(x1,y1,'*r',x2,y2,'*g');
line([x1,x2],[y1,y2]);
hold on;

其实画旋转的圆本质上还是数学问题

  • matlab大段注释的方法

Method1:

注释语句的快捷键是Ctrl+R
取消注释的快捷键是Ctrl+T

Method2:

采用matlab块注释方法
%{
需要注释的若干语句
%}

  • matlab图像的读取与写入
I = imread('C:\lena.jpg');
imwrite(I,'filename');
  •  将一组数据归一化到(0,1)之间 Matlab
1 默认的map范围是[-1, 1],所以如果需要[0, 1],则按这样的格式提供参数:
MappedData = mapminmax(OriginalData, 0, 1);

2 只按行归一化,如果是矩阵,则每行各自归一化,如果需要对整个矩阵归一化,用如下方法:
FlattenedData = OriginalData(:)'; % 展开矩阵为一列,然后转置为一行。
MappedFlattened = mapminmax(FlattenedData, 0, 1); % 归一化。
MappedData = reshape(MappedFlattened, size(OriginalData)); % 还原为原始矩阵形式。此处不需转置回去,因为reshape恰好是按列重新排序

Matlab 绘制直方图

x = randn(1000,1);
edges = [-10 -2:0.25:2 10];%指定直方图的边界
h = histogram(x,edges);

 

  •  画折线图
x=1:1:5;%x轴上的数据,第一个值代表数据开始,第二个值代表间隔,第三个值代表终止
a=[203.024,113.857,256.259,244.888,293.376]; %a数据y值
b=[334.4,143.2,297.4,487.2,596.2]; %b数据y值
plot(x,a,'-*b',x,b,'-or'); %线性,颜色,标记

 

Matlab 读取text文件的方法

  •  Matlab合并字符串,删掉字符串数组的第一个
str2 = str2(2:length(a1)+1);
O_S = "学号 姓名 专业编号 评定成绩";
str2 = [O_S str2];

删掉字符串数组的第一个,并合并

  • matlab矩阵转置
str1 = str1.';
  • matlab 查看数据类型
>> whos a
  Name      Size            Bytes  Class     Attributes
  a             1x1                 8  double

>> class(a)
ans =
double
  • matlab数据类型转换

  •  有关OFDM的仿真实验或者进一步理解参考博文

OFDM系统仿真【matlab代码】

posted @ 2023-03-23 19:52  清风我已逝  阅读(43)  评论(0编辑  收藏  举报