.'和'
’是转置,.'是复数转置
num2cell
将数据转为元胞数组 ,元胞数组是一个列表容器,可以在数组元素中存储任何类型的变量,元胞数组可以是多维的就像矩阵一样。用{}表示,num2cell将矩阵中的每个元素转换为单元格,第一个参数是要转换的矩阵,第二个参数是转换后单元格数组的维度
Tall数组
允许数组中拥有超出内存大小的更多的行,可以使用几乎任意matlab类型作为列变量。
cellfun
cellfun函数作用将一个函数应用到每个单元格数组的对应元素上语法:
output = cellfun(func, A1, A2, ..., 'UniformOutput', false);func是应用的函数句柄或匿名函数。
A1,A2是输入参数,这些参数可以是单元格数组或其他类型的数组
'UniformOutput', false
表示输出结果可以是不同大小的数组,而不需要是统一大小的数组
gather函数
用于收集(gather)分散的数据并将其汇总到一个变量中。
函数
function[输出参数] = 函数名(输入参数)
函数体
end
- 函数名可以和文件名不同,因为调用时是以文件名来调用函数,因此在函数名不同时,依旧可以通过文件名(参数)的方法调用
- end可以不加
size(A,DIMS)
size(A)直接显示出A的大小,若A是矩阵,第一个元素是行,第二个元素是列
size(A,n)n=1/2,返回行/列数
stft_dct 短时傅里叶变换(STFT)
stft_dct(X,'Window', ,'OverlapLength', ,'FFTLength', ,'Center', )
- X可以是向量,矩阵或时间表,如果输入有多个通道X是一个矩阵马,其中每个列对应于一个通道,如果X是一个时间表输出是用于单通道它必须包含有限且均匀增加的时间值。对于多通道时间表输入,将X指定为包含单个变量的时间表或包含多个变量的时间表,每个变量包含一个列向量。
- 输出是单通道信号的矩阵和多通道信号的三维阵列。列之间的时间增加,行之间的频率增加。
- Window 将X的每个通道划分为与window相同长度的段,相邻段之间的重叠设置为小于或等于窗口长度的75%的最大整数。然后该函数使用window中指定的向量对每个片段进行窗口处理
- overlaplength 指定相邻段之间重叠样本的整数个,必须小于窗口的长度,若为设置按上一条处理
- FFTlength指定用于计算离散傅里叶变换的频率点的整数个,NFFT必须大于或等于窗口长度,默认为window的长度
- 如果为true,则返回一个双边居中的转换,对于偶数NFFT在(-pi,pi]上计算中心变换,对于奇数NFFT在(-pi,pi)上计算中心变换,当提供时间信息时,间隔变为(-Fs/2,Fs/2] 和(-Fs/2,Fs/2)。如果为false,则该函数计算区间为[0,2*pi)的输出,如果输入信号具有时间信息,则计算[0,Fs]的输出,默认为true。
ceil(X)向上取整
zeros(X)创建全零数组,X是指定数组的大小
[zeros(x,y) noise zeros(s,y)]从noise中提取数据,并且在两侧添加了零填充
Segments1(:,:,index) = noisy1(:,index:index+NumSegments-1);Segments1(:,:,index)是一个三维矩阵Segments1中的一个2维平面 表示了第index个STFT片段。通过将所选择的子矩阵存储到Segments1中的对应位置,实现将noisy1中的数据分割成NumSegments个STFT片段,并存储到Segments1中。
信号通过时频分析法(eg.傅里叶变换,连续小波变换)转换后得到的时频表示通常是一个矩阵。
行代表频率:每一行对应于信号在某个特定频率上的频谱内容,低频信号在矩阵的顶部,高频信号在底部,频率的分辨率由采样率和信号长度决定,通常情况下,频率轴均匀地覆盖了信号的频谱范围。
列代表时间: 每一列对应于信号在某个特定时间段上的频谱内容,左侧的列对应于信号的开始,右侧的列对应于信号的结束,时间分辨率取决于窗口的大小和重叠,较小的窗口和较大的重叠会提高时间分辨率,但会降低频率分辨率。
transposedConv2dLayer转置卷积层:参数cropping 在转置卷积中可能不会产生预期的效果,因为转置卷积层的目的主要是增加尺寸,‘same’在转置卷积的设置中可能没有明确的行为定义。当输出尺寸增大,而cropping设置为‘same’时,可能这个参数没有发挥作用。