在MATLAB中播放音频文件时的Wav文件剪辑

时间:2013-12-07 06:19:26

标签: matlab signal-processing audio-processing lowpass-filter

这是我的问题。我正在连续时间和离散时域中实现高通和低通滤波器,而不使用MATLAB内置函数或信号处理工具箱。我需要过滤上传的wav文件。我有以下代码实现低通连续时间过滤器。主要问题是,当我去播放文件时,我收到以下错误:

  

警告:在写入文件期间剪切数据:flute_new   在wavwrite> PCM_Quantize at 286

     

在wavwrite> write_wavedat at 302

     

在139的wavwrite

     

在23的test2中

我一直在读这个问题的常见解决方案是:signal = signal / max(abs(signal)),但仍然无法解决剪切问题。我不太明白是什么产生了这个错误,所以任何帮助都将不胜感激。谢谢你的阅读。代码如下:

    [y,Fs,nbits]=wavread('flute.wav');
    m = length(y); %96375
    Fc = 500;               %% frequency cut
    nbits
    n = -(m-1)/2 : (m-1)/2;            %% kernel length / samples
    %Fs = Fs;    %22050      %% sample frequency / (nyquist - %2*m)
    Tc = 2*pi*(Fc/Fs);      %% theta c
    Hm = sin(Tc*n) ./ (pi*n);
        if (rem(m, 2) == 1)
          index = (m+1)/2;
          Hm(index) = Tc/pi;
        end

    [H w] = freqz(Hm, 1, 1024); % 1024 - Amount of Fourier Transform points


    %do playback
    sound(w,Fs);
    %save and playback the file
    wavwrite(w,'flute_new')

更新: 根据我的理解,因为我的wav文件是16位,我只能有-1< = w< 1。我按照评论中的建议更新了我的代码,但是当我检查w值时,我最后仍然有一个w = 1。建议的代码确实消除了剪辑警告,但通过扬声器播放音频文件仍然有剪辑。也许我理解错误的概念。对不起,如果是这样的话。

播放代码(已更新):

%Write and play file
w = w./max(abs(w(:)))*(1-(2^-(nbits-1)));
w
%do playback
    sound(w,Fs);
    wavwrite(w,'flute_new');

终端输出:

>> test2

nbits =

    16


w =

         0
    0.0010
    0.0020
    0.0029
    0.0039
    0.0049
    0.0059
    0.0068
    0.0078
    0.0088
    0.0098
    0.0108
    0.0117
    0.0127
    0.0137
    0.0147
    0.0156
    0.0166
    0.0176
    0.0186
    0.0195
    0.0205
    0.0215
    0.0225
    0.0235
    0.0244
    0.0254
    0.0264
    0.0274
    0.0283
    0.0293
    0.0303
    0.0313
    0.0323
    0.0332
    0.0342
    0.0352
    0.0362
    0.0371
    0.0381
    0.0391
    0.0401
    0.0411
    0.0420
    0.0430
    0.0440
    0.0450
    0.0459
    0.0469
    0.0479
    0.0489
    0.0499
    0.0508
    0.0518
    0.0528
    0.0538
    0.0547
    0.0557
    0.0567
    0.0577
    0.0586
    0.0596
    0.0606
    0.0616
    0.0626
    0.0635
    0.0645
    0.0655
    0.0665
    0.0674
    0.0684
    0.0694
    0.0704
    0.0714
    0.0723
    0.0733
    0.0743
    0.0753
    0.0762
    0.0772
    0.0782
    0.0792
    0.0802
    0.0811
    0.0821
    0.0831
    0.0841
    0.0850
    0.0860
    0.0870
    0.0880
    0.0890
    0.0899
    0.0909
    0.0919
    0.0929
    0.0938
    0.0948
    0.0958
    0.0968
    0.0977
    0.0987
    0.0997
    0.1007
    0.1017
    0.1026
    0.1036
    0.1046
    0.1056
    0.1065
    0.1075
    0.1085
    0.1095
    0.1105
    0.1114
    0.1124
    0.1134
    0.1144
    0.1153
    0.1163
    0.1173
    0.1183
    0.1193
    0.1202
    0.1212
    0.1222
    0.1232
    0.1241
    0.1251
    0.1261
    0.1271
    0.1281
    0.1290
    0.1300
    0.1310
    0.1320
    0.1329
    0.1339
    0.1349
    0.1359
    0.1368
    0.1378
    0.1388
    0.1398
    0.1408
    0.1417
    0.1427
    0.1437
    0.1447
    0.1456
    0.1466
    0.1476
    0.1486
    0.1496
    0.1505
    0.1515
    0.1525
    0.1535
    0.1544
    0.1554
    0.1564
    0.1574
    0.1584
    0.1593
    0.1603
    0.1613
    0.1623
    0.1632
    0.1642
    0.1652
    0.1662
    0.1672
    0.1681
    0.1691
    0.1701
    0.1711
    0.1720
    0.1730
    0.1740
    0.1750
    0.1759
    0.1769
    0.1779
    0.1789
    0.1799
    0.1808
    0.1818
    0.1828
    0.1838
    0.1847
    0.1857
    0.1867
    0.1877
    0.1887
    0.1896
    0.1906
    0.1916
    0.1926
    0.1935
    0.1945
    0.1955
    0.1965
    0.1975
    0.1984
    0.1994
    0.2004
    0.2014
    0.2023
    0.2033
    0.2043
    0.2053
    0.2062
    0.2072
    0.2082
    0.2092
    0.2102
    0.2111
    0.2121
    0.2131
    0.2141
    0.2150
    0.2160
    0.2170
    0.2180
    0.2190
    0.2199
    0.2209
    0.2219
    0.2229
    0.2238
    0.2248
    0.2258
    0.2268
    0.2278
    0.2287
    0.2297
    0.2307
    0.2317
    0.2326
    0.2336
    0.2346
    0.2356
    0.2366
    0.2375
    0.2385
    0.2395
    0.2405
    0.2414
    0.2424
    0.2434
    0.2444
    0.2453
    0.2463
    0.2473
    0.2483
    0.2493
    0.2502
    0.2512
    0.2522
    0.2532
    0.2541
    0.2551
    0.2561
    0.2571
    0.2581
    0.2590
    0.2600
    0.2610
    0.2620
    0.2629
    0.2639
    0.2649
    0.2659
    0.2669
    0.2678
    0.2688
    0.2698
    0.2708
    0.2717
    0.2727
    0.2737
    0.2747
    0.2757
    0.2766
    0.2776
    0.2786
    0.2796
    0.2805
    0.2815
    0.2825
    0.2835
    0.2844
    0.2854
    0.2864
    0.2874
    0.2884
    0.2893
    0.2903
    0.2913
    0.2923
    0.2932
    0.2942
    0.2952
    0.2962
    0.2972
    0.2981
    0.2991
    0.3001
    0.3011
    0.3020
    0.3030
    0.3040
    0.3050
    0.3060
    0.3069
    0.3079
    0.3089
    0.3099
    0.3108
    0.3118
    0.3128
    0.3138
    0.3148
    0.3157
    0.3167
    0.3177
    0.3187
    0.3196
    0.3206
    0.3216
    0.3226
    0.3235
    0.3245
    0.3255
    0.3265
    0.3275
    0.3284
    0.3294
    0.3304
    0.3314
    0.3323
    0.3333
    0.3343
    0.3353
    0.3363
    0.3372
    0.3382
    0.3392
    0.3402
    0.3411
    0.3421
    0.3431
    0.3441
    0.3451
    0.3460
    0.3470
    0.3480
    0.3490
    0.3499
    0.3509
    0.3519
    0.3529
    0.3539
    0.3548
    0.3558
    0.3568
    0.3578
    0.3587
    0.3597
    0.3607
    0.3617
    0.3626
    0.3636
    0.3646
    0.3656
    0.3666
    0.3675
    0.3685
    0.3695
    0.3705
    0.3714
    0.3724
    0.3734
    0.3744
    0.3754
    0.3763
    0.3773
    0.3783
    0.3793
    0.3802
    0.3812
    0.3822
    0.3832
    0.3842
    0.3851
    0.3861
    0.3871
    0.3881
    0.3890
    0.3900
    0.3910
    0.3920
    0.3929
    0.3939
    0.3949
    0.3959
    0.3969
    0.3978
    0.3988
    0.3998
    0.4008
    0.4017
    0.4027
    0.4037
    0.4047
    0.4057
    0.4066
    0.4076
    0.4086
    0.4096
    0.4105
    0.4115
    0.4125
    0.4135
    0.4145
    0.4154
    0.4164
    0.4174
    0.4184
    0.4193
    0.4203
    0.4213
    0.4223
    0.4233
    0.4242
    0.4252
    0.4262
    0.4272
    0.4281
    0.4291
    0.4301
    0.4311
    0.4320
    0.4330
    0.4340
    0.4350
    0.4360
    0.4369
    0.4379
    0.4389
    0.4399
    0.4408
    0.4418
    0.4428
    0.4438
    0.4448
    0.4457
    0.4467
    0.4477
    0.4487
    0.4496
    0.4506
    0.4516
    0.4526
    0.4536
    0.4545
    0.4555
    0.4565
    0.4575
    0.4584
    0.4594
    0.4604
    0.4614
    0.4624
    0.4633
    0.4643
    0.4653
    0.4663
    0.4672
    0.4682
    0.4692
    0.4702
    0.4711
    0.4721
    0.4731
    0.4741
    0.4751
    0.4760
    0.4770
    0.4780
    0.4790
    0.4799
    0.4809
    0.4819
    0.4829
    0.4839
    0.4848
    0.4858
    0.4868
    0.4878
    0.4887
    0.4897
    0.4907
    0.4917
    0.4927
    0.4936
    0.4946
    0.4956
    0.4966
    0.4975
    0.4985
    0.4995
    0.5005
    0.5015
    0.5024
    0.5034
    0.5044
    0.5054
    0.5063
    0.5073
    0.5083
    0.5093
    0.5102
    0.5112
    0.5122
    0.5132
    0.5142
    0.5151
    0.5161
    0.5171
    0.5181
    0.5190
    0.5200
    0.5210
    0.5220
    0.5230
    0.5239
    0.5249
    0.5259
    0.5269
    0.5278
    0.5288
    0.5298
    0.5308
    0.5318
    0.5327
    0.5337
    0.5347
    0.5357
    0.5366
    0.5376
    0.5386
    0.5396
    0.5406
    0.5415
    0.5425
    0.5435
    0.5445
    0.5454
    0.5464
    0.5474
    0.5484
    0.5493
    0.5503
    0.5513
    0.5523
    0.5533
    0.5542
    0.5552
    0.5562
    0.5572
    0.5581
    0.5591
    0.5601
    0.5611
    0.5621
    0.5630
    0.5640
    0.5650
    0.5660
    0.5669
    0.5679
    0.5689
    0.5699
    0.5709
    0.5718
    0.5728
    0.5738
    0.5748
    0.5757
    0.5767
    0.5777
    0.5787
    0.5796
    0.5806
    0.5816
    0.5826
    0.5836
    0.5845
    0.5855
    0.5865
    0.5875
    0.5884
    0.5894
    0.5904
    0.5914
    0.5924
    0.5933
    0.5943
    0.5953
    0.5963
    0.5972
    0.5982
    0.5992
    0.6002
    0.6012
    0.6021
    0.6031
    0.6041
    0.6051
    0.6060
    0.6070
    0.6080
    0.6090
    0.6100
    0.6109
    0.6119
    0.6129
    0.6139
    0.6148
    0.6158
    0.6168
    0.6178
    0.6187
    0.6197
    0.6207
    0.6217
    0.6227
    0.6236
    0.6246
    0.6256
    0.6266
    0.6275
    0.6285
    0.6295
    0.6305
    0.6315
    0.6324
    0.6334
    0.6344
    0.6354
    0.6363
    0.6373
    0.6383
    0.6393
    0.6403
    0.6412
    0.6422
    0.6432
    0.6442
    0.6451
    0.6461
    0.6471
    0.6481
    0.6491
    0.6500
    0.6510
    0.6520
    0.6530
    0.6539
    0.6549
    0.6559
    0.6569
    0.6578
    0.6588
    0.6598
    0.6608
    0.6618
    0.6627
    0.6637
    0.6647
    0.6657
    0.6666
    0.6676
    0.6686
    0.6696
    0.6706
    0.6715
    0.6725
    0.6735
    0.6745
    0.6754
    0.6764
    0.6774
    0.6784
    0.6794
    0.6803
    0.6813
    0.6823
    0.6833
    0.6842
    0.6852
    0.6862
    0.6872
    0.6882
    0.6891
    0.6901
    0.6911
    0.6921
    0.6930
    0.6940
    0.6950
    0.6960
    0.6969
    0.6979
    0.6989
    0.6999
    0.7009
    0.7018
    0.7028
    0.7038
    0.7048
    0.7057
    0.7067
    0.7077
    0.7087
    0.7097
    0.7106
    0.7116
    0.7126
    0.7136
    0.7145
    0.7155
    0.7165
    0.7175
    0.7185
    0.7194
    0.7204
    0.7214
    0.7224
    0.7233
    0.7243
    0.7253
    0.7263
    0.7273
    0.7282
    0.7292
    0.7302
    0.7312
    0.7321
    0.7331
    0.7341
    0.7351
    0.7360
    0.7370
    0.7380
    0.7390
    0.7400
    0.7409
    0.7419
    0.7429
    0.7439
    0.7448
    0.7458
    0.7468
    0.7478
    0.7488
    0.7497
    0.7507
    0.7517
    0.7527
    0.7536
    0.7546
    0.7556
    0.7566
    0.7576
    0.7585
    0.7595
    0.7605
    0.7615
    0.7624
    0.7634
    0.7644
    0.7654
    0.7664
    0.7673
    0.7683
    0.7693
    0.7703
    0.7712
    0.7722
    0.7732
    0.7742
    0.7751
    0.7761
    0.7771
    0.7781
    0.7791
    0.7800
    0.7810
    0.7820
    0.7830
    0.7839
    0.7849
    0.7859
    0.7869
    0.7879
    0.7888
    0.7898
    0.7908
    0.7918
    0.7927
    0.7937
    0.7947
    0.7957
    0.7967
    0.7976
    0.7986
    0.7996
    0.8006
    0.8015
    0.8025
    0.8035
    0.8045
    0.8054
    0.8064
    0.8074
    0.8084
    0.8094
    0.8103
    0.8113
    0.8123
    0.8133
    0.8142
    0.8152
    0.8162
    0.8172
    0.8182
    0.8191
    0.8201
    0.8211
    0.8221
    0.8230
    0.8240
    0.8250
    0.8260
    0.8270
    0.8279
    0.8289
    0.8299
    0.8309
    0.8318
    0.8328
    0.8338
    0.8348
    0.8358
    0.8367
    0.8377
    0.8387
    0.8397
    0.8406
    0.8416
    0.8426
    0.8436
    0.8445
    0.8455
    0.8465
    0.8475
    0.8485
    0.8494
    0.8504
    0.8514
    0.8524
    0.8533
    0.8543
    0.8553
    0.8563
    0.8573
    0.8582
    0.8592
    0.8602
    0.8612
    0.8621
    0.8631
    0.8641
    0.8651
    0.8661
    0.8670
    0.8680
    0.8690
    0.8700
    0.8709
    0.8719
    0.8729
    0.8739
    0.8749
    0.8758
    0.8768
    0.8778
    0.8788
    0.8797
    0.8807
    0.8817
    0.8827
    0.8836
    0.8846
    0.8856
    0.8866
    0.8876
    0.8885
    0.8895
    0.8905
    0.8915
    0.8924
    0.8934
    0.8944
    0.8954
    0.8964
    0.8973
    0.8983
    0.8993
    0.9003
    0.9012
    0.9022
    0.9032
    0.9042
    0.9052
    0.9061
    0.9071
    0.9081
    0.9091
    0.9100
    0.9110
    0.9120
    0.9130
    0.9140
    0.9149
    0.9159
    0.9169
    0.9179
    0.9188
    0.9198
    0.9208
    0.9218
    0.9227
    0.9237
    0.9247
    0.9257
    0.9267
    0.9276
    0.9286
    0.9296
    0.9306
    0.9315
    0.9325
    0.9335
    0.9345
    0.9355
    0.9364
    0.9374
    0.9384
    0.9394
    0.9403
    0.9413
    0.9423
    0.9433
    0.9443
    0.9452
    0.9462
    0.9472
    0.9482
    0.9491
    0.9501
    0.9511
    0.9521
    0.9531
    0.9540
    0.9550
    0.9560
    0.9570
    0.9579
    0.9589
    0.9599
    0.9609
    0.9618
    0.9628
    0.9638
    0.9648
    0.9658
    0.9667
    0.9677
    0.9687
    0.9697
    0.9706
    0.9716
    0.9726
    0.9736
    0.9746
    0.9755
    0.9765
    0.9775
    0.9785
    0.9794
    0.9804
    0.9814
    0.9824
    0.9834
    0.9843
    0.9853
    0.9863
    0.9873
    0.9882
    0.9892
    0.9902
    0.9912
    0.9921
    0.9931
    0.9941
    0.9951
    0.9961
    0.9970
    0.9980
    0.9990
    1.0000

1 个答案:

答案 0 :(得分:0)

这不是错误,只是警告。

如果您编写具有32位分辨率的.wav文件,则允许的数据范围为-1 <= w <= 1.但是对于8,16或24位,限制为-1 <= w &LT; 1,使得w == 1产生剪切警告(1位短'1',即16位模式下1 - 1/32768 = 0.99996948242188。),并且它不能写入文件。你可以忽略它,或者:

format long
w = w./max(abs(w(:)))*(1-(2^-(nbits-1)));
wavwrite(w,'flute_new');