算法积累

一:全排列算法:

看到一个面试题,打印全排列,简单实现一下

 

#include  < stdio.h >
#include 
< stdlib.h >

// 打印全排列的算法
char  array[ 100 ];
int  totalnum  =   0 ;
void  arrange( char   *  array, int  begin, int  end)
{
    
if(begin==end)
    
{
        totalnum
++;
        printf(
"%d :%s ",totalnum,array);
        
return;
    }

    
for(int i=begin;i<end;i++)
    
{
        
char tmp = array[begin];
        array[begin] 
= array[i];
        array[i] 
= tmp;
        arrange(array,begin
+1,end);
        array[i] 
= array[begin];
        array[begin] 
= tmp;
    }

}


int  main( int  argc, char   *  argv[])
{
    
//全排列字符数目
    int num = 3;

    
for(int i=0;i<num;i++)
    
{
        array[i] 
= (char)('a'+i);
    }

    array[num] 
= 0;

    arrange(array,
0,num);

    printf(
"ok! ");
}

 

 

以下是能量积累检测算法的MATLAB代码: ```MATLAB clear \[x,Fs\]=audioread('mei.wav'); % 读入数据文件 x=x(:,1); % 双声道变单声道 wlen=200; inc=80; % 给出帧长和帧移 win=hamming(wlen); % 给出哈明窗 %win=boxcar(wlen); %给出矩形窗 N=length(x); % 信号长度 X=enframe(x,win,inc)'; % 分帧 fn=size(X,2); % 求出帧数 time=(0:N-1)/Fs; % 计算出信号的时间刻度 for i=1 : fn u=X(:,i); % 取出一帧 u2=u.*u; % 求出能量 En(i)=sum(u2); % 对一帧累加求和 end subplot 211; plot(time,x,'k'); % 画出时间波形 axis(\[0 0.5,-inf,inf\]) %改变横轴范围 title('语音波形'); ylabel('幅值'); xlabel(\['时间/s' 10 '(a)'\]); frameTime=frame2time(fn,wlen,inc,Fs); % 求出每帧对应的时间 subplot 212; plot(frameTime,En,'k') % 画出短时能量图 axis(\[0 0.5,-inf,inf\]) %改变横轴范围 title('短时能量'); ylabel('幅值'); xlabel(\['时间/s' 10 '(b)'\]); ``` 这段代码实现了对音频信号进行能量积累检测。首先,读入音频文件并将双声道转换为单声道。然后,给出帧长和帧移,并选择窗函数(这里使用了哈明窗)。接下来,计算信号的长度和帧数,并计算每帧的能量。最后,绘制音频波形和短时能量图。 #### 引用[.reference_title] - *1* [【能量检测】基于认知无线电的能量检测算法的matlab仿真](https://blog.csdn.net/ccsss22/article/details/124327051)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【能量检测】基于matlab的信号能量检测算法仿真](https://blog.csdn.net/ccsss22/article/details/108433211)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [matlab 短时能量计算+源代码](https://blog.csdn.net/weixin_46211269/article/details/121006000)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值